.table-wrap{position:relative;overflow:auto;max-width:100%;border:1px solid #dfe7e2;border-radius:12px;background:#fff;box-shadow:0 4px 18px rgba(20,55,42,.04);scrollbar-color:#b9c9c0 #f1f5f2;scrollbar-width:thin}
.table-wrap table{margin:0;border-collapse:separate;border-spacing:0;white-space:nowrap;background:#fff}
.table-wrap thead th{position:sticky;top:0;z-index:3;padding:13px 16px;border-right:1px solid #e3eae6;border-bottom:1px solid #d7e1db;color:#4d6258;background:linear-gradient(#f9fbfa,#f1f6f3);font-size:12px;font-weight:800;letter-spacing:.03em;user-select:none}
.table-wrap thead th:last-child{border-right:0}
.table-wrap tbody td{padding:13px 16px;border-right:1px solid #edf1ef;border-bottom:1px solid #e8eeea;color:#263b32;background:#fff;vertical-align:middle;overflow:hidden;text-overflow:ellipsis}
.table-wrap tbody td:last-child{border-right:0}.table-wrap tbody tr:last-child td{border-bottom:0}
.table-wrap tbody tr:nth-child(even) td{background:#fafcfb}.table-wrap tbody tr:hover td{background:#edf8f2}
.table-wrap tbody tr{transition:background-color .15s ease}.table-wrap a{font-weight:700}
.table-wrap .empty{padding:36px;color:#829188;text-align:center;background:#fbfcfb}
.column-resizer{position:absolute;top:0;right:-5px;width:10px;height:100%;cursor:col-resize;touch-action:none;z-index:5}
.column-resizer:after{content:"";position:absolute;top:25%;bottom:25%;left:4px;width:2px;border-radius:2px;background:#c2d0c8;opacity:0;transition:opacity .15s,background .15s}
th:hover>.column-resizer:after,.column-resizer.is-dragging:after{opacity:1;background:#298064}
body.is-resizing-columns{cursor:col-resize!important;user-select:none!important}body.is-resizing-columns *{cursor:col-resize!important}
.table-width-tip{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin:0 0 8px;color:#809087;font-size:11px}.table-width-tip:before{content:"↔";color:#298064;font-size:14px}
@media(max-width:700px){.table-wrap thead th,.table-wrap tbody td{padding:11px 13px}.table-width-tip{justify-content:flex-start}}
.grouped-nav{display:block!important}.grouped-nav .nav-home{margin-bottom:12px}.grouped-nav .nav-group{margin:0 0 14px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}.grouped-nav .nav-group p{display:flex;align-items:center;gap:8px;margin:0 8px 5px;color:#78978b;font-size:11px;font-weight:800;letter-spacing:.1em}.grouped-nav .nav-group p span{display:grid;place-items:center;width:20px;height:20px;border-radius:6px;color:#d9bd83;background:rgba(226,189,118,.12);font-size:10px;letter-spacing:0}.grouped-nav .nav-group a{margin:2px 0;padding:9px 14px 9px 36px;font-size:13px}.grouped-nav .nav-group a.active{color:#fff;background:linear-gradient(90deg,rgba(255,255,255,.13),rgba(255,255,255,.05));box-shadow:inset 3px 0 #d9bd83}.app-shell aside{overflow-y:auto;max-height:100vh;position:sticky;top:0}
.grouped-nav .nav-group>p{position:relative;padding:7px 28px 7px 5px;border-radius:8px;cursor:pointer;transition:color .15s,background .15s}.grouped-nav .nav-group>p:hover,.grouped-nav .nav-group>p:focus{color:#d5e2dc;background:rgba(255,255,255,.06);outline:0}.grouped-nav .nav-group>p:after{content:"⌄";position:absolute;right:7px;top:7px;color:#98afa5;font-size:15px;transition:transform .18s}.grouped-nav .nav-group.is-collapsed>p:after{transform:rotate(-90deg)}.grouped-nav .nav-group.is-collapsed>a{display:none}.grouped-nav .nav-group-count{margin-left:auto;padding:1px 6px;border-radius:10px;color:#9eb2a9;background:rgba(255,255,255,.07);font-size:10px;font-weight:700;letter-spacing:0}.grouped-nav .nav-group:not(.is-collapsed)>a{animation:oa-nav-reveal .16s ease both}@keyframes oa-nav-reveal{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
.customer-table-wrap table{min-width:1280px}
.customer-table-actions{white-space:nowrap}
.customer-table-actions .actions{display:flex;align-items:center;gap:8px;margin:0}
.customer-table-actions .oa-open-modal{width:auto;margin:0;padding:6px 10px}
.customer-type-list-tabs{margin:0 0 12px!important}.customer-type-list-panel[hidden]{display:none!important}.customer-type-list-panel .customer-table-wrap table{width:100%!important;min-width:0!important;table-layout:fixed}.customer-type-list-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.customer-type-list-table td:last-child{white-space:normal}.customer-type-list-panel>.table-pagination{margin-top:10px}
.customer-list-panel > .customer-crm-card{display:none!important}
.customer-list-toolbar{margin-bottom:14px!important}
.list-primary-actions{display:flex;align-items:center;justify-content:flex-end;width:100%;gap:10px;margin:0 0 14px}
.list-primary-actions .oa-open-modal{width:auto;margin:0;padding:9px 15px}
.media-device-list-search{width:min(360px,42vw);height:42px;margin:0!important;padding:9px 13px!important}
.media-account-type-filter{width:150px;height:42px;margin:0!important;padding:8px 32px 8px 12px!important;flex:0 0 150px}
.media-account-visible-password{overflow-wrap:anywhere;color:#273b33;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.media-account-v908-form .media-account-remark-field{grid-column:1/-1}
.media-account-v908-form .media-account-remark-field input{width:100%}
.media-account-v908-form .media-account-devices-field{min-width:0}
.media-account-v908-form .media-account-devices-field{position:relative;z-index:30}
.media-account-v908-form .media-account-devices-field:has(.meal-multi-control.is-open){z-index:20000}
.media-account-v908-form .media-account-devices-field .meal-multi-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.media-account-v908-form .media-account-devices-field .meal-multi-control{position:relative;width:100%;min-width:0;margin-top:6px}
.media-account-v908-form .media-account-devices-field .meal-multi-trigger{display:flex!important;width:100%!important;height:42px!important;align-items:center;justify-content:space-between;margin:0!important;padding:0 11px!important;border:1px solid #d6e1db!important;border-radius:8px!important;color:#33483e!important;background:#fff!important;font-weight:500!important;text-align:left!important}
.media-account-v908-form .media-account-devices-field .meal-multi-trigger>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
.media-account-v908-form .media-account-devices-field .meal-multi-trigger>i{margin-left:8px;color:#77877f;font-style:normal;transition:transform .16s}
.media-account-v908-form .media-account-devices-field .meal-multi-control.is-open .meal-multi-trigger>i{transform:rotate(180deg)}
.media-account-v908-form .media-account-devices-field .meal-multi-menu{position:absolute;z-index:16000;top:47px;right:0;left:0;width:100%;max-height:290px;overflow:auto;padding:7px;border:1px solid #d5e1da;border-radius:10px;background:#fff;box-shadow:0 14px 36px rgba(30,62,48,.18)}
.media-account-v908-form .media-account-devices-field .meal-multi-menu[hidden]{display:none!important}
.media-account-v908-form .media-account-devices-field .meal-multi-search{width:100%!important;height:36px!important;margin:0 0 6px!important;padding:7px 9px!important}
.media-account-v908-form .media-account-devices-field .meal-multi-option{display:flex!important;width:100%!important;min-height:36px!important;align-items:center;gap:8px;margin:0!important;padding:7px 9px!important;border:0!important;border-radius:7px!important;color:#30453b!important;background:#fff!important;text-align:left!important;font-weight:500!important}
.media-account-v908-form .media-account-devices-field .meal-multi-option:hover{background:#eef7f2!important}
.media-account-v908-form .media-account-devices-field .meal-multi-option.is-selected{color:#17664d!important;background:#e7f4ed!important}
.media-account-v908-form .media-account-devices-field .meal-multi-check{display:grid;flex:0 0 18px;width:18px;height:18px;place-items:center;border:1px solid #b9cac1;border-radius:5px;color:transparent;font-size:12px}
.media-account-v908-form .media-account-devices-field .meal-multi-option.is-selected .meal-multi-check{border-color:#238160;color:#fff;background:#238160}
.oa-modal:has(.media-account-v908-form),.oa-modal:has(.media-account-v908-form) .oa-modal-body{overflow:visible}
.record-stable-detail-form.media-account-v908-form,
.record-stable-detail-form.media-account-v908-form .generic-edit-grid,
.oa-inline-edit-panel:has(.media-account-devices-field),
.oa-inline-edit-panel:has(.media-account-devices-field) form,
.generic-detail-main:has(.media-account-devices-field),
.detail-main:has(.media-account-devices-field),
.detail-with-activity:has(.media-account-devices-field){overflow:visible!important}
.generic-detail-main:has(.media-account-devices-field),
.detail-main:has(.media-account-devices-field){position:relative;z-index:80}
.detail-with-activity:has(.media-account-devices-field)>.activity-column{position:relative;z-index:1}
.media-account-v908-form .media-account-devices-field:has(.meal-multi-control.is-open),
.media-account-v908-form .media-account-devices-field .meal-multi-menu{z-index:2147483000!important}
.media-account-v908-form .media-account-devices-field .meal-multi-control.open-upward .meal-multi-menu{top:auto;bottom:47px}
.media-device-picker-floating{position:fixed!important;z-index:2147483647!important;display:block;overflow:auto!important;padding:7px!important;border:1px solid #d5e1da!important;border-radius:10px!important;background:#fff!important;box-sizing:border-box!important;box-shadow:0 14px 36px rgba(30,62,48,.24)!important}
.media-device-picker-floating:popover-open{margin:0!important;inset:auto!important}
.media-device-picker-floating[hidden]{display:none!important}
.media-device-picker-floating .meal-multi-search{display:block!important;width:100%!important;height:36px!important;margin:0 0 6px!important;padding:7px 9px!important;box-sizing:border-box!important}
.media-device-picker-floating .meal-multi-options{display:block!important}
.media-device-picker-floating .meal-multi-option{display:flex!important;width:100%!important;min-height:36px!important;align-items:center!important;gap:8px!important;margin:0!important;padding:7px 9px!important;border:0!important;border-radius:7px!important;color:#30453b!important;background:#fff!important;text-align:left!important;font-weight:500!important}
.media-device-picker-floating .meal-multi-option:hover{background:#eef7f2!important}
.media-device-picker-floating .meal-multi-option.is-selected{color:#17664d!important;background:#e7f4ed!important}
.media-device-picker-floating .meal-multi-check{display:grid!important;flex:0 0 18px!important;width:18px!important;height:18px!important;place-items:center!important;border:1px solid #b9cac1!important;border-radius:5px!important;color:transparent!important;font-size:12px!important}
.media-device-picker-floating .meal-multi-option.is-selected .meal-multi-check{border-color:#238160!important;color:#fff!important;background:#238160!important}
.media-device-picker-portal{margin:0!important;overscroll-behavior:contain!important}
.media-device-picker-portal .meal-multi-search{position:sticky!important;z-index:2!important;top:0!important;background:#fff!important}
.media-device-picker-empty{padding:16px 10px;color:#7d8b84;text-align:center;font-size:13px}
.media-device-picker-dialog{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;color:#30453b!important;background:transparent!important;box-shadow:none!important;overflow:visible!important;transform:none!important}
.media-device-picker-dialog::backdrop{background:transparent!important;backdrop-filter:none!important}
@media(max-width:700px){.media-account-v908-form .media-account-devices-field .meal-multi-menu{position:fixed;z-index:18000;top:18vh;right:auto;left:5vw;width:90vw;max-height:62vh}.oa-modal:has(.media-account-v908-form){overflow:hidden}.oa-modal:has(.media-account-v908-form) .oa-modal-body{overflow:auto}}
@media(max-width:700px){.media-device-list-search{width:100%}.media-device-list-panel>.list-primary-actions,.media-sim-list-panel>.list-primary-actions{flex-wrap:wrap}.media-device-list-panel>.list-primary-actions .oa-open-modal,.media-sim-list-panel>.list-primary-actions .oa-open-modal{margin-left:auto}}
.new-media-fit-panel .table-wrap{overflow-x:hidden!important}
.new-media-fit-table{width:100%!important;min-width:0!important;table-layout:fixed!important}
.new-media-fit-table th,.new-media-fit-table td{max-width:none!important;padding:10px 7px!important;white-space:normal!important;overflow-wrap:anywhere;line-height:1.35}
.new-media-fit-table th{font-size:11px!important}.new-media-fit-table td{font-size:12px}
.new-media-fit-table th:first-child,.new-media-fit-table td:first-child{width:68px}
.new-media-fit-devices th:nth-child(n+5),.new-media-fit-devices td:nth-child(n+5){width:58px;text-align:center}
.new-media-fit-sims th:nth-child(n+7):nth-child(-n+11),.new-media-fit-sims td:nth-child(n+7):nth-child(-n+11){width:56px;text-align:center}
.new-media-fit-sims th:nth-child(12),.new-media-fit-sims td:nth-child(12){width:68px}
.new-media-fit-accounts th:nth-child(2),.new-media-fit-accounts td:nth-child(2){width:78px}
.new-media-fit-accounts th:nth-child(3),.new-media-fit-accounts td:nth-child(3){width:78px}

/* v0.15.318：列表默认适配当前内容区，短字段收紧，长字段截断显示完整内容可看 title。 */
.workspace{min-width:0}.workspace>main,.workspace .panel,.workspace .table-wrap{min-width:0;max-width:100%}
.workspace .table-wrap{overflow-x:hidden}
.workspace .table-wrap table.oa-fit-table{width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important;white-space:nowrap!important}
.workspace .table-wrap table.oa-fit-table th,.workspace .table-wrap table.oa-fit-table td{min-width:0!important;max-width:none!important;padding:10px 8px!important}
.workspace .table-wrap table.oa-fit-table th{overflow:hidden;text-overflow:ellipsis}
.workspace .table-wrap table.oa-fit-table td{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.workspace .table-wrap table.oa-fit-table td .tag{max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.workspace .table-wrap table.oa-fit-table .actions,.workspace .table-wrap table.oa-fit-table .review-actions{gap:4px}
.workspace .table-wrap table.oa-fit-table button,.workspace .table-wrap table.oa-fit-table .button{min-width:0;padding-left:8px;padding-right:8px}
.workspace .customer-table-wrap table.oa-fit-table,.workspace .product-list-table.oa-fit-table{min-width:0!important}
@media(max-width:720px){
  .workspace .table-wrap{overflow-x:hidden!important;border:0;background:transparent;box-shadow:none}
  .workspace .table-wrap table.oa-wide-table{display:block!important;width:100%!important}
  .workspace .table-wrap table.oa-wide-table colgroup,.workspace .table-wrap table.oa-wide-table thead{display:none}
  .workspace .table-wrap table.oa-wide-table tbody{display:grid;gap:10px}
  .workspace .table-wrap table.oa-wide-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid #dfe7e2;border-radius:11px;overflow:hidden;background:#fff}
  .workspace .table-wrap table.oa-wide-table td{display:block!important;width:auto!important;padding:9px 10px 9px 88px!important;border:0!important;border-bottom:1px solid #edf1ef!important;white-space:normal!important;overflow-wrap:anywhere}
  .workspace .table-wrap table.oa-wide-table td:before{content:attr(data-label);float:left;width:78px;margin-left:-78px;color:#75857d;font-size:11px;font-weight:700}
  .workspace .table-wrap table.oa-wide-table td:nth-last-child(-n+2){border-bottom:0!important}
}

/* v0.16.352: keep the receivables mobile controls and cards in a stable order. */
@media (max-width: 900px){
  html body .app-shell .workspace>main .receivable-head:has(.receivable-list-filters){
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    align-items:stretch!important;
    gap:10px!important;
    width:100%!important;
  }
  html body .app-shell .workspace>main .receivable-head:has(.receivable-list-filters) .receivable-list-filters{
    display:grid!important;
    grid-column:1/-1!important;
    grid-row:1!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
  }
  html body .app-shell .workspace>main .receivable-list-filters>label{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:5px!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
  }
  html body .app-shell .workspace>main .receivable-list-filters>.receivable-period-filter{
    display:grid!important;
    grid-column:1/-1!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:5px!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
  }
  html body .app-shell .workspace>main .receivable-list-filters :is(input,select,button,.relation-combobox,.relation-combobox-control){
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    box-sizing:border-box!important;
  }
  html body .app-shell .workspace>main .receivable-list-filters .receivable-customer-filter>.relation-search-combobox{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
  html body .app-shell .workspace>main .receivable-head:has(.receivable-list-filters)>.open-receivable-confirmation,
  html body .app-shell .workspace>main .receivable-head:has(.receivable-list-filters)>.open-receipt-modal{
    grid-row:2!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
  }
  html body .app-shell .workspace>main .receivable-head:has(.receivable-list-filters)>.open-receivable-confirmation{
    grid-column:1!important;
  }
  html body .app-shell .workspace>main .receivable-head:has(.receivable-list-filters)>.open-receipt-modal{
    grid-column:2!important;
  }
  html body .app-shell .workspace>main .receivable-head:has(.receivable-list-filters)>.receivable-tabs{
    display:grid!important;
    grid-column:1/-1!important;
    grid-row:3!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
    width:100%!important;
    min-width:0!important;
    margin:2px 0 0!important;
    padding:5px!important;
    overflow:visible!important;
  }
  html body .app-shell .workspace>main .receivable-head:has(.receivable-list-filters)>.receivable-tabs>a{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:0!important;
    padding:9px 5px!important;
    text-align:center!important;
    white-space:nowrap!important;
  }

  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr{
    display:grid!important;
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    gap:0 10px!important;
    width:100%!important;
    min-width:0!important;
    padding:12px!important;
    overflow:hidden!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td{
    display:none!important;
    position:static!important;
    width:auto!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:7px 0!important;
    overflow:hidden!important;
    border:0!important;
    border-top:1px dashed #e4ebe7!important;
    background:transparent!important;
    color:#31473c!important;
    font-size:13px!important;
    line-height:1.45!important;
    text-align:left!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td::before{
    display:block!important;
    margin:0 0 2px!important;
    color:#7b8a82!important;
    font-size:10px!important;
    font-weight:650!important;
    line-height:1.3!important;
    content:attr(data-label)!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="客户"]{
    display:block!important;
    grid-column:1/6!important;
    grid-row:1!important;
    padding-top:0!important;
    border-top:0!important;
    font-size:15px!important;
    font-weight:800!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="客户"]::before,
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="状态"]::before{
    display:none!important;
    content:none!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="状态"]{
    display:flex!important;
    grid-column:6/7!important;
    grid-row:1!important;
    align-items:flex-start!important;
    justify-content:flex-end!important;
    padding-top:0!important;
    border-top:0!important;
    overflow:visible!important;
    text-align:right!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="销售订单"]{
    display:grid!important;
    grid-column:1/-1!important;
    grid-row:2!important;
    grid-template-columns:68px minmax(0,1fr)!important;
    align-items:center!important;
    gap:8px!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="销售订单"]::before{
    margin:0!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="订单日期"]{
    display:block!important;
    grid-column:1/4!important;
    grid-row:3!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="应收编号"]{
    display:block!important;
    grid-column:4/7!important;
    grid-row:3!important;
    text-align:right!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="应收编号"]::before{
    text-align:right!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="应收金额"]{
    display:block!important;
    grid-column:1/3!important;
    grid-row:4!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="已收金额"]{
    display:block!important;
    grid-column:3/5!important;
    grid-row:4!important;
    color:#17745b!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="未收金额"]{
    display:block!important;
    grid-column:5/7!important;
    grid-row:4!important;
    color:#b14a3f!important;
    text-align:right!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="未收金额"]::before{
    text-align:right!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td:is([data-label="应收金额"],[data-label="已收金额"],[data-label="未收金额"]){
    font-weight:800!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[colspan]{
    display:block!important;
    grid-column:1/-1!important;
    grid-row:auto!important;
    padding:20px 0!important;
    border-top:0!important;
    text-align:center!important;
  }
}

/* Sales shipment tracking-number hover menu: keep long record histories usable. */
.sales-shipment-copy-panel{max-height:min(320px,calc(100vh - 16px));overflow:auto}

/* Sales shipment: record history and one-step package/product entry. */
.sales-shipment-history{margin-bottom:16px;padding-bottom:15px;border-bottom:1px solid var(--line)}
.sales-shipment-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.sales-shipment-section-title h3{margin:0!important;font-size:15px}
.sales-shipment-history-count{color:var(--muted);font-size:12px}
.sales-shipment-history-rows{display:grid;max-height:154px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff}
.sales-shipment-history-row{display:grid!important;grid-template-columns:30px 92px minmax(0,1fr) 88px;align-items:center;gap:8px;width:100%!important;min-height:42px;margin:0!important;padding:7px 10px!important;border:0!important;border-bottom:1px solid #e7ede9!important;border-radius:0!important;color:#294238!important;background:#fff!important;text-align:left!important}
.sales-shipment-history-row:last-child{border-bottom:0!important}.sales-shipment-history-row:hover{background:#eef7f2!important}
.sales-shipment-history-index{display:grid;width:22px;height:22px;place-items:center;border-radius:50%;color:#fff;background:#26745d;font-size:11px}
.sales-shipment-history-date,.sales-shipment-history-quantity{white-space:nowrap}.sales-shipment-history-tracking{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#52665d}
.sales-shipment-history-empty{margin:0;padding:22px!important}
.sales-shipment-dialog .sales-shipment-date-row{grid-template-columns:minmax(180px,260px) auto!important;align-items:end}.sales-shipment-dialog .sales-shipment-date-row .sales-add-package{align-self:end;margin:0!important}
.sales-shipment-dialog .sales-shipment-section-title .sales-clear-quantities{width:auto!important;margin:0!important;padding:7px 11px!important;font-size:12px}
.sales-shipment-record-detail-dialog{width:min(1080px,calc(100vw - 28px));max-width:1080px}.sales-shipment-record-detail-dialog .oa-modal-body{display:grid;gap:18px;padding:20px}.sales-shipment-record-detail-dialog section h3{margin:0 0 8px;font-size:15px}.sales-shipment-record-actions{display:flex;align-items:center;gap:0;margin-left:auto}.sales-shipment-record-edit{width:auto!important;min-width:96px;height:40px;margin:0!important;border-radius:8px 0 0 8px!important}.sales-shipment-record-menu{position:relative;margin:0}.sales-shipment-record-menu summary{display:grid;place-items:center;width:38px;height:40px;cursor:pointer;list-style:none;color:#fff;background:#176c55;border-left:1px solid rgba(255,255,255,.25);border-radius:0 8px 8px 0}.sales-shipment-record-menu summary::-webkit-details-marker{display:none}.sales-shipment-record-menu>button{position:absolute;z-index:4;top:44px;right:0;width:110px!important;margin:0!important;color:#fff!important;background:#ad4139!important;box-shadow:0 8px 22px rgba(28,48,39,.22)}.sales-shipment-record-actions .oa-modal-close{margin-left:10px!important}.sales-shipment-record-feedback{padding:10px 12px;border-radius:8px;background:#eef8f2;color:#17634f}.sales-shipment-record-feedback.is-error{background:#fff0ee;color:#a33d36}.sales-shipment-record-feedback.is-success{background:#e7f6ed;color:#126148}
.sales-shipment-record-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.sales-shipment-record-meta>div{padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#f7faf8}.sales-shipment-record-meta small,.sales-shipment-record-meta b{display:block}.sales-shipment-record-meta small{color:var(--muted);font-size:11px}
.sales-shipment-record-packages{display:grid;gap:7px}.sales-shipment-record-packages>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;padding:11px 13px;border:1px solid var(--line);border-radius:8px}.sales-shipment-record-packages span{color:#52665d}.sales-shipment-record-detail-dialog table{min-width:900px}
@media(max-width:600px){.sales-shipment-history-row{grid-template-columns:26px 82px minmax(0,1fr)}.sales-shipment-history-quantity{grid-column:3}.sales-shipment-dialog .sales-shipment-date-row{grid-template-columns:minmax(0,1fr) auto!important}.sales-shipment-record-meta{grid-template-columns:1fr}.sales-shipment-record-detail-dialog{width:100vw;max-width:100vw;margin:0;border-radius:0}}

/* v0.16.360 income/expense filtered export */
.list-primary-actions .finance-list-export{
  flex:0 0 auto;
  width:auto!important;
  min-width:108px;
  margin:0!important;
  white-space:nowrap;
}
@media(max-width:720px){
  .list-primary-actions .finance-list-export{
    min-width:94px;
    padding-right:12px!important;
    padding-left:12px!important;
  }
}

/* v0.16.029: product costs open directly in one shared-header batch table. */
#product-cost-form .product-cost-mode-toolbar,
#product-cost-form .product-cost-single-fields{display:none!important}
#product-cost-form .product-cost-batch-fields{display:flex!important}
#product-cost-form .product-cost-add-row{order:-2!important;align-self:flex-end!important;margin:0 0 8px!important}
#product-cost-form .product-cost-batch-head{order:-1!important}

/* Keep numeric fields clean: values remain validated, but browser steppers are hidden. */
input[type="number"] {
    appearance: textfield;
    -moz-appearance: textfield;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    margin: 0;
    -webkit-appearance: none;
    appearance: none;
}

/* v0.15.699: income creation follows stable business rows. */
.income-create-form.income-create-layout-v699 {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 12px !important;
    width: 100% !important;
}
.income-create-layout-v699 > .income-create-row {
    display: grid;
    gap: 12px;
    align-items: end;
    width: 100%;
}
.income-create-layout-v699 > .income-create-primary-row {
    grid-template-columns: minmax(150px,.72fr) minmax(190px,1fr) minmax(220px,1.2fr) minmax(150px,.72fr);
}
.income-create-layout-v699 > .income-create-transaction-row {
    grid-template-columns: repeat(2,minmax(0,1fr));
}
.income-create-layout-v699 > .income-create-transaction-row.has-sales-order {
    grid-template-columns: repeat(3,minmax(0,1fr));
}
.income-create-layout-v699 > .income-create-invoice-row {
    grid-template-columns: repeat(2,minmax(0,1fr));
}
.income-create-layout-v699 > .income-create-description-row,
.income-create-layout-v699 > .income-create-remark-row {
    grid-template-columns: minmax(0,1fr);
}
.income-create-layout-v699 > .income-create-row > label {
    min-width: 0;
    width: 100%;
    margin: 0 !important;
}
.income-create-layout-v699 > .income-create-row input,
.income-create-layout-v699 > .income-create-row select,
.income-create-layout-v699 > .income-create-row textarea,
.income-create-layout-v699 > .income-create-row .relation-search-select {
    width: 100% !important;
    max-width: none !important;
}
.income-create-layout-v699 > .income-create-remark-row textarea {
    min-height: 44px !important;
    height: 44px;
    resize: vertical;
}
.income-create-layout-v699 > .income-create-submit-v699 {
    justify-self: end;
    width: auto !important;
    min-width: 96px;
    margin: 2px 0 0 !important;
}
@media(max-width:760px) {
    .income-create-layout-v699 > .income-create-primary-row,
    .income-create-layout-v699 > .income-create-transaction-row,
    .income-create-layout-v699 > .income-create-transaction-row.has-sales-order,
    .income-create-layout-v699 > .income-create-invoice-row {
        grid-template-columns: minmax(0,1fr);
    }
}

/* Stable quotation header alignment and fixed, non-overflowing item columns. */
.customer-quotation-form .quotation-head-v645 > label {
    position: relative;
}

.customer-quotation-form .quotation-company-required::before {
    content: "* ";
    color: #d0443b;
    font-weight: 800;
}

.customer-quotation-form .quotation-head-v645 > label > input,
.customer-quotation-form .quotation-head-v645 > label > select,
.customer-quotation-form .quotation-head-v645 > label > .relation-search-combobox > .relation-search-input,
.customer-quotation-form .quotation-head-v645 > label > .quotation-company-picker > .quotation-company-picker-display {
    box-sizing: border-box !important;
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
}

.customer-quotation-form .quotation-head-v645 > label > input,
.customer-quotation-form .quotation-head-v645 > label > select,
.customer-quotation-form .quotation-head-v645 > label > .relation-search-combobox,
.customer-quotation-form .quotation-head-v645 > label > .quotation-company-picker {
    margin-top: 7px !important;
}

.customer-quotation-form .quotation-head-v645 > label > .relation-search-combobox > .relation-search-input,
.customer-quotation-form .quotation-head-v645 > label > .quotation-company-picker > .quotation-company-picker-display {
    margin-top: 0 !important;
}

.customer-quotation-form .quotation-head-v645 .quotation-company-picker {
    width: 100%;
}

.customer-quotation-form .quotation-company-picker-display {
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    overflow: hidden !important;
    padding-right: 34px !important;
}

.customer-quotation-form .quotation-company-picker-display > i {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.customer-quotation-form .quotation-company-picker-display > b {
    position: absolute;
    top: 50%;
    right: 12px;
    width: 7px;
    height: 7px;
    margin: 0;
    border-right: 1.5px solid #718078;
    border-bottom: 1.5px solid #718078;
    color: transparent;
    font-size: 0;
    transform: translateY(-70%) rotate(45deg);
}

.customer-quotation-form .quotation-products-v203.quotation-products-v781 th:nth-child(1),
.customer-quotation-form .quotation-products-v203.quotation-products-v781 td:nth-child(1) { width: 11% !important; }
.customer-quotation-form .quotation-products-v203.quotation-products-v781 th:nth-child(2),
.customer-quotation-form .quotation-products-v203.quotation-products-v781 td:nth-child(2) { width: 22% !important; }
.customer-quotation-form .quotation-products-v203.quotation-products-v781 th:nth-child(3),
.customer-quotation-form .quotation-products-v203.quotation-products-v781 td:nth-child(3) { width: 6% !important; max-width: none !important; }
.customer-quotation-form .quotation-products-v203.quotation-products-v781 th:nth-child(4),
.customer-quotation-form .quotation-products-v203.quotation-products-v781 td:nth-child(4) { width: 11% !important; }
.customer-quotation-form .quotation-products-v203.quotation-products-v781 th:nth-child(5),
.customer-quotation-form .quotation-products-v203.quotation-products-v781 td:nth-child(5) { width: 11% !important; }
.customer-quotation-form .quotation-products-v203.quotation-products-v781 th:nth-child(6),
.customer-quotation-form .quotation-products-v203.quotation-products-v781 td:nth-child(6) { width: 19% !important; }
.customer-quotation-form .quotation-products-v203.quotation-products-v781 th:nth-child(7),
.customer-quotation-form .quotation-products-v203.quotation-products-v781 td:nth-child(7) { width: 14% !important; }
.customer-quotation-form .quotation-products-v203.quotation-products-v781 th:nth-child(8),
.customer-quotation-form .quotation-products-v203.quotation-products-v781 td:nth-child(8) { width: 6% !important; }

.customer-quotation-form .quotation-products-v203.quotation-products-v781 td:nth-child(6) input {
    padding-right: 7px !important;
    padding-left: 7px !important;
    font-variant-numeric: tabular-nums;
}

.customer-quotation-form .quotation-products-v203.quotation-products-v781 td:nth-child(7) input {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Income rows reserve an unobstructed anchor for the floating approval lock. */
@media (min-width:901px) {
    .workspace table.income-record-fit-table > tbody > tr > td:first-child,
    .workspace table.income-record-fit-table > tfoot > tr > td:first-child {
        padding-left: 36px !important;
    }

    /* Keep the first petty-cash value clear of the floating review-lock icon. */
    .workspace table[data-mobile-module="petty-cash"] > tbody > tr > td:first-child,
    .workspace table[data-mobile-module="petty-cash"] > tfoot > tr > td:first-child {
        padding-left: 36px !important;
    }

    /* Inventory documents use the same floating review lock at row start. */
    .workspace table.inventory-document-list > tbody > tr > td:first-child,
    .workspace table.inventory-document-list > tfoot > tr > td:first-child {
        padding-left: 36px !important;
    }
}

/* v0.15.766: keep approval type and stage badges fully visible. */
html body .approval-hub .approval-task-card > header {
    gap: 8px !important;
}
html body .approval-hub .approval-card-tags {
    flex-wrap: nowrap !important;
    overflow: visible !important;
}
html body .approval-hub .approval-card-tags > .approval-kind-badge,
html body .approval-hub .approval-card-tags > .tag {
    flex: 0 0 auto !important;
    max-width: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
}
html body .approval-hub .approval-card-amount {
    min-width: 92px !important;
}

/* v0.15.767: one review banner spans the detail and activity columns. */
html body .detail-with-activity > .detail-review-banner {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}
/* Every status notice is a full-width row. This fallback also protects the
   first paint before JavaScript adds detail-review-banner. */
html body .detail-with-activity > .review-rejection-banner,
html body .detail-with-activity > .income-rejection-banner,
html body .detail-with-activity > .detail-review-waiting,
html body .detail-with-activity > .approval-lock-notice {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    box-sizing: border-box !important;
}
html body .review-rejection-banner > div,
html body .income-rejection-banner > div {
    flex: 1 1 auto;
    min-width: 0;
}
html body .review-rejection-banner > form,
html body .income-rejection-banner > form {
    display: block !important;
    flex: 0 0 auto !important;
    align-self: center;
    width: auto !important;
    margin: 0 2px 0 auto !important;
}
html body .review-rejection-banner > .review-rejection-resubmit-form,
html body .income-rejection-banner > .review-rejection-resubmit-form {
    display: block !important;
    flex: 0 0 auto;
    align-self: center;
    width: auto !important;
    margin: 0 2px 0 auto !important;
}
html body .review-rejection-banner .review-resubmit-action,
html body .income-rejection-banner .review-resubmit-action {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: auto !important;
    min-width: 118px;
    height: 40px;
    margin: 0 !important;
    padding: 0 16px !important;
    border: 1px solid #167253 !important;
    border-radius: 8px !important;
    color: #fff !important;
    background: #167253 !important;
    font-weight: 700;
    white-space: nowrap;
}
html body .review-rejection-banner .review-resubmit-action:hover,
html body .income-rejection-banner .review-resubmit-action:hover {
    border-color: #0f6045 !important;
    background: #0f6045 !important;
}
@media(max-width:640px){
    html body .review-rejection-banner,
    html body .income-rejection-banner { flex-wrap: wrap; }
    html body .review-rejection-banner > .review-rejection-resubmit-form,
    html body .income-rejection-banner > .review-rejection-resubmit-form { flex-basis: 100%; margin-left: 0 !important; }
}
html body .detail-with-activity > .approval-lock-notice.detail-review-banner {
    display: flex !important;
}

/* v0.15.768: prevent even a one-frame duplicate while late detail scripts load. */
html body .detail-with-activity:has(.detail-review-waiting) .approval-lock-notice,
html body .detail-with-activity > .detail-review-banner ~ .detail-review-banner {
    display: none !important;
}
html body .inventory-document-detail:has(.inventory-document-waiting-notice) .inventory-document-detail-head .status-warn {
    display: none !important;
}

/* v0.15.763: consistent approval-card identity, amount and stage-time placement. */
.approval-hub .approval-task-card > header {
    min-height: 30px;
    align-items: flex-start !important;
}
.approval-hub .approval-card-tags {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
}
.approval-hub .approval-kind-badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 3px 8px;
    border: 1px solid rgba(55,82,69,.14);
    border-radius: 7px;
    color: #344e41;
    background: rgba(255,255,255,.82);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    white-space: nowrap;
}
.approval-hub .approval-card-amount {
    flex: 0 0 auto;
    min-width: 108px;
    color: #a64235;
    font-size: 18px !important;
    line-height: 28px;
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.approval-hub .income-task .approval-card-amount {
    color: #167253;
}
.approval-hub .approval-card-reference {
    flex: 0 0 auto;
    color: #63756b;
    font-size: 13px;
    line-height: 28px;
    white-space: nowrap;
}
.approval-hub .approval-stage-time {
    display: block;
    margin-top: 4px;
    color: #536a5f;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.45;
    font-variant-numeric: tabular-nums;
}
.approval-hub .procurement-inventory-task {
    padding-bottom: 62px !important;
}
@media(max-width:600px) {
    .approval-hub .approval-card-amount { min-width: 94px;font-size:16px!important; }
}

/* v0.15.665: desktop product columns fill the panel without horizontal scrolling. */
@media(min-width:901px) {
    .workspace main .product-list-wrap.product-desktop-fit-wrap {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
        scrollbar-gutter: auto !important;
    }
    .workspace main .product-list-table.product-desktop-fit-table {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        table-layout: fixed !important;
    }
    .workspace main .product-list-table.product-desktop-fit-table th,
    .workspace main .product-list-table.product-desktop-fit-table td {
        min-width: 0 !important;
        max-width: none !important;
        padding-left: 6px !important;
        padding-right: 6px !important;
        overflow: hidden !important;
        white-space: nowrap !important;
        text-overflow: ellipsis !important;
    }
    .workspace main .product-list-table.product-desktop-fit-table th:first-child,
    .workspace main .product-list-table.product-desktop-fit-table td:first-child {
        position: static !important;
        min-width: 0 !important;
    }
}

/* v0.15.658: customer quotation cards use a strict two-row mobile layout. */
@media(max-width:900px) {
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        grid-template-rows: auto auto !important;
        align-items: center !important;
        gap: 8px 10px !important;
        padding: 11px 12px !important;
    }
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td {
        display: none !important;
    }
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(4),
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(2),
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(1),
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(8) {
        position: static !important;
        display: flex !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 !important;
        overflow: visible !important;
    }
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(4) {
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-items: baseline !important;
        justify-self: stretch !important;
        padding: 0 !important;
        border: 0 !important;
        color: #223c31 !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        white-space: nowrap !important;
    }
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(4) .quotation-mobile-product-count {
        display: inline !important;
        margin-left: 3px !important;
        color: #788981 !important;
        font-size: 12px !important;
        font-weight: 500 !important;
    }
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(2) {
        grid-column: 2 !important;
        grid-row: 1 !important;
        justify-self: end !important;
        padding: 0 !important;
        border: 0 !important;
        color: #315749 !important;
        font-size: 12px !important;
        white-space: nowrap !important;
    }
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(1) {
        grid-column: 1 !important;
        grid-row: 2 !important;
        justify-self: stretch !important;
        padding: 7px 0 0 !important;
        border: 0 !important;
        border-top: 1px dashed #e4ebe7 !important;
        color: #64756d !important;
        font-size: 12px !important;
    }
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(8) {
        grid-column: 2 !important;
        grid-row: 2 !important;
        justify-self: end !important;
        padding: 7px 0 0 !important;
        border: 0 !important;
        border-top: 1px dashed #e4ebe7 !important;
    }
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(1)::before,
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(1)::after,
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(2)::before,
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(2)::after,
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(4)::before,
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(4)::after,
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(8)::before,
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(8)::after {
        display: none !important;
        content: none !important;
    }
    .customer-quotation-list-table .quotation-list-actions .quotation-preview-button {
        width: auto !important;
        min-width: 52px !important;
        height: 30px !important;
        margin: 0 !important;
        padding: 4px 9px !important;
        border-radius: 7px !important;
        font-size: 12px !important;
        line-height: 20px !important;
    }
}

/* v0.15.716: sales-order item remarks and compact quantity/unit columns. */
html body .sales-items-layout .sales-product-col{width:22%!important}
html body .sales-items-layout .sales-price-col{width:9%!important}
html body .sales-items-layout .sales-quantity-col{width:7%!important}
html body .sales-items-layout .sales-unit-col{width:6%!important}
html body .sales-items-layout .sales-total-col{width:11%!important}
html body .sales-items-layout .sales-remark-col{width:33%!important}
html body .sales-items-layout .sales-remove-col{width:12%!important}
html body .sales-items-layout .sales-item-remark-input{width:100%!important;min-width:0!important}
html body .sales-items-layout th,html body .sales-items-layout td{padding-right:5px!important;padding-left:5px!important}
html body .sales-items-layout .remove-sales-item{display:flex!important;align-items:center;justify-content:center;width:100%!important;min-width:0!important;padding:6px 2px!important;white-space:nowrap!important}
html body .sales-order-items-table th:nth-child(1),html body .sales-order-items-table td:nth-child(1){width:24%!important}
html body .sales-order-items-table th:nth-child(2),html body .sales-order-items-table td:nth-child(2){width:11%!important}
html body .sales-order-items-table th:nth-child(3),html body .sales-order-items-table td:nth-child(3){width:8%!important}
html body .sales-order-items-table th:nth-child(4),html body .sales-order-items-table td:nth-child(4){width:7%!important}
html body .sales-order-items-table th:nth-child(5),html body .sales-order-items-table td:nth-child(5){width:13%!important}
html body .sales-order-items-table th:nth-child(6),html body .sales-order-items-table td:nth-child(6){width:37%!important}

/* 计件标准可关联多个计件员工。 */
.piecework-employee-picker {
    position: relative;
    width: 100%;
    min-width: 0;
}

.piecework-employee-native {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0;
    pointer-events: none;
}

.piecework-employee-display {
    display: flex !important;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
    width: 100% !important;
    height: 44px;
    min-height: 44px;
    margin: 0 !important;
    padding: 7px 34px 7px 10px !important;
    border: 1px solid var(--line) !important;
    border-radius: 8px !important;
    color: var(--text) !important;
    text-align: left;
    background: #fff !important;
}

.piecework-employee-display::after {
    content: "⌄";
    position: absolute;
    right: 12px;
    color: var(--muted);
}

.piecework-employee-display:disabled {
    cursor: default;
    color: #5f6d66 !important;
    background: #f4f7f5 !important;
}

.piecework-employee-display.is-invalid {
    border-color: #bd4d46 !important;
    box-shadow: 0 0 0 2px rgba(189,77,70,.12);
}

.piecework-employee-placeholder {
    color: var(--muted);
}

.piecework-employee-chip {
    display: inline-flex;
    max-width: 100%;
    padding: 3px 7px;
    border-radius: 6px;
    overflow: hidden;
    color: #246b55;
    font-size: 12px;
    line-height: 18px;
    text-overflow: ellipsis;
    white-space: nowrap;
    background: #eaf4ef;
}

.piecework-employee-menu {
    position: absolute;
    z-index: 10020;
    top: calc(100% + 5px);
    right: 0;
    left: 0;
    display: none;
    min-width: 250px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(20,49,37,.18);
}

.piecework-employee-picker.is-open .piecework-employee-menu {
    display: block;
}

.piecework-employee-search {
    width: 100%;
    height: 36px !important;
    min-height: 36px !important;
    margin: 0 0 6px !important;
}

.piecework-employee-match-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 30px;
    margin-bottom: 6px;
    padding: 5px 7px;
    border-radius: 7px;
    color: #4c665a;
    font-size: 12px;
    background: #eef6f2;
}

.piecework-employee-match-hint {
    min-width: 0;
    line-height: 18px;
}

.piecework-employee-match-toggle {
    flex: 0 0 auto;
    width: auto !important;
    min-width: 0 !important;
    height: 26px !important;
    min-height: 26px !important;
    margin: 0 !important;
    padding: 3px 8px !important;
    border: 1px solid #acd0c0 !important;
    border-radius: 6px !important;
    color: #246b55 !important;
    font-size: 12px !important;
    line-height: 18px !important;
    background: #fff !important;
}

.piecework-employee-choices {
    max-height: 240px;
    overflow: auto;
}

.piecework-employee-choice {
    display: flex !important;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    margin: 0 !important;
    padding: 6px 7px;
    border-radius: 6px;
    cursor: pointer;
}

.piecework-employee-choice:hover {
    background: #f0f6f3;
}

.piecework-employee-choice input {
    flex: 0 0 auto;
    width: 16px !important;
    height: 16px !important;
    min-height: 0 !important;
    margin: 0 !important;
}

.piecework-employee-empty {
    margin: 0;
    padding: 14px 8px;
    color: var(--muted);
    text-align: center;
    font-size: 12px;
}

@media(max-width:600px) {
    .piecework-employee-menu {
        position: fixed;
        right: 14px;
        left: 14px;
        width: auto;
    }
}

/* Work-task list always fills its panel; visible columns share all available width. */
.work-task-list-panel,
.work-task-table-wrap,
.work-task-list-table {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.work-task-list-panel {
    align-self: stretch !important;
}

.work-task-list-table {
    table-layout: fixed !important;
}

/* Customer follow-up is a compact two-column form, not a full-size child-data dialog. */
dialog.detail-child-create-modal:has(.customer-followup-quick-form) {
    width: min(490px, 94vw) !important;
    max-width: 490px !important;
}

.customer-followup-quick-form {
    width: 100% !important;
    max-width: none !important;
}

.customer-followup-first-row {
    align-items: start !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.customer-followup-first-row > label {
    position: relative !important;
    display: grid !important;
    grid-template-rows: 20px 44px !important;
    align-content: start !important;
    gap: 6px !important;
    min-width: 0 !important;
    margin: 0 !important;
    line-height: 20px !important;
}

.customer-followup-first-row > label:has(> input[required])::before,
.customer-followup-first-row > label:has(> select[required])::before {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    display: block !important;
    width: auto !important;
    line-height: 20px !important;
}

.customer-followup-first-row > label > input,
.customer-followup-first-row > label > select {
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

@media(max-width:600px) {
    dialog.detail-child-create-modal:has(.customer-followup-quick-form) {
        width: 94vw !important;
        max-width: 94vw !important;
    }

    .customer-followup-first-row {
        grid-template-columns: 1fr !important;
    }
}

/* Sales order detail: stable two-column fields and compact child tables. */
html body .sales-order-detail-main > .generic-field-grid,
.sales-order-detail-main .record-stable-detail-form .generic-edit-grid {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
}

.sales-order-detail-main .detail-field-shipping_address,
.sales-order-detail-main .detail-field-remark {
    grid-column: auto !important;
}

.sales-finance-panels,
.sales-finance-panels .detail-tab-panel,
.sales-finance-panels .table-wrap {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
}

.sales-finance-panels .table-wrap {
    overflow-x: hidden !important;
}

.sales-finance-panels .table-wrap > table.sales-order-finance-table,
.sales-finance-panels .table-wrap > table.sales-order-shipments-table {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    table-layout: fixed !important;
}

.sales-order-finance-table th,
.sales-order-finance-table td,
.sales-order-shipments-table th,
.sales-order-shipments-table td {
    box-sizing: border-box;
    min-width: 0 !important;
    padding-right: 7px !important;
    padding-left: 7px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.sales-order-finance-table th:nth-child(1),
.sales-order-finance-table td:nth-child(1) { width: 23% !important; }
.sales-order-finance-table th:nth-child(2),
.sales-order-finance-table td:nth-child(2) { width: 18% !important; }
.sales-order-finance-table th:nth-child(3),
.sales-order-finance-table td:nth-child(3) { width: 29% !important; }
.sales-order-finance-table th:nth-child(4),
.sales-order-finance-table td:nth-child(4) { width: 15% !important; }
.sales-order-finance-table th:nth-child(5),
.sales-order-finance-table td:nth-child(5) { width: 15% !important; }

.sales-order-shipments-table th:nth-child(1),
.sales-order-shipments-table td:nth-child(1) { width: 18% !important; }
.sales-order-shipments-table th:nth-child(2),
.sales-order-shipments-table td:nth-child(2) { width: 28% !important; }
.sales-order-shipments-table th:nth-child(3),
.sales-order-shipments-table td:nth-child(3) { width: 27% !important; }
.sales-order-shipments-table th:nth-child(4),
.sales-order-shipments-table td:nth-child(4) { width: 27% !important; }

@media(max-width:560px) {
    .sales-order-detail-main > .generic-field-grid,
    .sales-order-detail-main .record-stable-detail-form .generic-edit-grid {
        grid-template-columns: 1fr !important;
    }
}

/*
 * Mobile detail dialogs:
 * - action buttons and close stay on the first row;
 * - the record title occupies the second row;
 * - activity timelines are intentionally hidden on small screens.
 */
@media(max-width:900px) {
    #oa-detail-dialog > .oa-modal-head,
    #sales-income-draft-dialog > .oa-modal-head {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        grid-template-rows: minmax(38px,auto) auto !important;
        grid-template-areas:
            "actions close"
            "title badge" !important;
        align-items: center !important;
        gap: 9px 10px !important;
        padding: 12px 14px !important;
    }

    #oa-detail-dialog > .oa-modal-head > .modal-header-actions,
    #sales-income-draft-dialog > .oa-modal-head > .modal-header-actions {
        grid-area: actions !important;
        display: flex !important;
        justify-self: start !important;
        min-width: 0 !important;
        margin: 0 !important;
    }

    #oa-detail-dialog > .oa-modal-head > .oa-modal-close,
    #sales-income-draft-dialog > .oa-modal-head > .oa-modal-close {
        grid-area: close !important;
        justify-self: end !important;
        margin: 0 !important;
    }

    #oa-detail-dialog > .oa-modal-head > h2,
    #sales-income-draft-dialog > .oa-modal-head > h2 {
        grid-area: title !important;
        min-width: 0 !important;
        margin: 0 !important;
        overflow-wrap: anywhere !important;
        font-size: 18px !important;
        line-height: 1.35 !important;
    }

    #oa-detail-dialog > .oa-modal-head > .customer-detail-grade-badge {
        grid-area: badge !important;
        justify-self: end !important;
        margin: 0 !important;
    }

    #oa-detail-dialog > .oa-modal-body,
    #sales-income-draft-dialog > .oa-modal-body {
        max-height: calc(96vh - 112px) !important;
    }

    .activity-column {
        display: none !important;
    }

    .detail-with-activity,
    .account-detail-layout,
    .sales-item-detail-layout {
        grid-template-columns: minmax(0,1fr) !important;
    }
}

/* Payroll list: creation options live in a compact dialog opened beside search. */
.workspace main .panel.block:has(> .payroll-filter-form) {
    display: none !important;
}

.payroll-create-button {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 104px !important;
    margin: 0 !important;
    white-space: nowrap !important;
}
.payroll-create-dialog {
    width: min(720px,94vw) !important;
}
.payroll-create-dialog .payroll-filter-form {
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    align-items: end !important;
    gap: 14px !important;
    margin: 0 !important;
}
.payroll-create-dialog .payroll-filter-form > label {
    min-width: 0 !important;
    margin: 0 !important;
}
.payroll-create-dialog .payroll-filter-form > label:nth-of-type(3) {
    grid-column: 1 / -1 !important;
}
.payroll-create-dialog .payroll-filter-form > button {
    grid-column: 2 !important;
    justify-self: end !important;
    width: auto !important;
    min-width: 128px !important;
    margin: 0 !important;
}
.payroll-create-dialog .oa-modal-body > .alert {
    margin: 0 0 12px !important;
}

@media(max-width:600px) {
    .payroll-create-button {
        min-width: 88px !important;
        padding-right: 10px !important;
        padding-left: 10px !important;
    }
    .payroll-create-dialog .payroll-filter-form {
        grid-template-columns: 1fr !important;
    }
    .payroll-create-dialog .payroll-filter-form > label,
    .payroll-create-dialog .payroll-filter-form > button {
        grid-column: 1 !important;
    }
    .payroll-create-dialog .payroll-filter-form > button {
        justify-self: end !important;
    }
}

/* 产品、采购物品：公司筛选与搜索操作共用一行，筛选外观与员工类型标签一致。 */
.workspace .catalog-company-filter-toolbar {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 10px !important;
}
.workspace .catalog-company-filter-toolbar > .catalog-company-tabs {
    flex: 1 1 auto !important;
    align-self: center !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 auto 0 0 !important;
    padding: 5px !important;
    border: 1px solid #dfe7e2 !important;
    border-radius: 11px !important;
    background: #edf3ef !important;
    overflow-x: auto !important;
}
.workspace .catalog-company-filter-toolbar > .catalog-company-tabs .detail-tab {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 9px 15px !important;
    border: 0 !important;
    border-radius: 8px !important;
    color: #53675d !important;
    background: transparent !important;
    box-shadow: none !important;
    white-space: nowrap !important;
}
.workspace .catalog-company-filter-toolbar > .catalog-company-tabs .detail-tab.is-active {
    color: #fff !important;
    background: #17634f !important;
    box-shadow: 0 4px 10px rgba(23,99,79,.18) !important;
}
.workspace .catalog-company-filter-toolbar > .media-device-list-search {
    flex: 0 1 300px !important;
    width: min(300px,28vw) !important;
    min-width: 150px !important;
}
.workspace .catalog-company-filter-toolbar > .compact-view-toolbar,
.workspace .catalog-company-filter-toolbar > .oa-open-modal,
.workspace .catalog-company-filter-toolbar > .permission-denied-create {
    flex: 0 0 auto !important;
}

@media(max-width:700px) {
    .workspace .catalog-company-filter-toolbar {
        display: grid !important;
        grid-template-columns: minmax(110px,1.35fr) minmax(74px,.8fr) auto auto !important;
        align-items: center !important;
        gap: 6px !important;
    }
    .workspace .catalog-company-filter-toolbar > .catalog-company-tabs {
        grid-column: 1 !important;
        width: 100% !important;
        min-width: 0 !important;
        padding: 3px !important;
    }
    .workspace .catalog-company-filter-toolbar > .catalog-company-tabs .detail-tab {
        min-width: 0 !important;
        padding: 7px 10px !important;
    }
    .workspace .catalog-company-filter-toolbar > .media-device-list-search {
        grid-column: 2 !important;
        width: 100% !important;
        min-width: 0 !important;
    }
    .workspace .catalog-company-filter-toolbar > .compact-view-toolbar {
        grid-column: 3 !important;
    }
    .workspace .catalog-company-filter-toolbar > .oa-open-modal,
    .workspace .catalog-company-filter-toolbar > .permission-denied-create {
        grid-column: 4 !important;
    }
}

/* Customer list: explicitly override the legacy mobile toolbar and keep it aligned like products. */
.workspace .catalog-aligned-filter-panel.catalog-aligned-customer-filters > .customer-type-list-tabs {
    grid-column: 1 !important;
    grid-row: 1 !important;
}
.workspace .catalog-aligned-filter-panel.catalog-aligned-customer-filters > .customer-list-toolbar.catalog-aligned-filter-actions {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: auto !important;
}

@media(max-width:900px) {
    html body .app-shell .workspace main .catalog-aligned-filter-panel.catalog-aligned-customer-filters {
        display: grid !important;
        grid-template-columns: minmax(130px,1.2fr) minmax(150px,1fr) !important;
        align-items: center !important;
        column-gap: 6px !important;
    }
    html body .app-shell .workspace main .catalog-aligned-filter-panel.catalog-aligned-customer-filters > .customer-type-list-tabs {
        grid-column: 1 !important;
        grid-row: 1 !important;
        width: auto !important;
        min-width: 0 !important;
        margin: 0 0 8px !important;
    }
    html body .app-shell .workspace main .catalog-aligned-filter-panel.catalog-aligned-customer-filters > .customer-list-toolbar.catalog-aligned-filter-actions {
        grid-column: 2 !important;
        grid-row: 1 !important;
        display: flex !important;
        flex-flow: row nowrap !important;
        width: auto !important;
        min-width: 0 !important;
        margin: 0 0 8px !important;
        gap: 6px !important;
    }
    html body .app-shell .workspace main .catalog-aligned-filter-panel.catalog-aligned-customer-filters > .customer-list-toolbar.catalog-aligned-filter-actions > .media-device-list-search {
        flex: 1 1 0 !important;
        width: 0 !important;
        min-width: 0 !important;
        margin: 0 !important;
    }
    html body .app-shell .workspace main .catalog-aligned-filter-panel.catalog-aligned-customer-filters > .customer-list-toolbar.catalog-aligned-filter-actions > :is(.oa-open-modal,.permission-denied-create) {
        flex: 0 0 auto !important;
        min-width: 58px !important;
        margin: 0 !important;
    }
}

/* Final customer mobile action row: search on the left, create on the right. */
@media(max-width:900px) {
    html body .workspace main .customer-list-panel > .customer-list-toolbar.customer-mobile-search-create,
    html body .workspace main .customer-list-panel > .list-primary-actions.customer-mobile-search-create {
        display: flex !important;
        flex-flow: row nowrap !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 8px !important;
        width: 100% !important;
        min-width: 0 !important;
        margin-bottom: 10px !important;
    }

    html body .workspace main .customer-list-panel > .customer-mobile-search-create > .media-device-list-search,
    html body .workspace main .customer-list-panel > .customer-mobile-search-create > input[type="search"] {
        order: 1 !important;
        flex: 1 1 auto !important;
        width: 0 !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 !important;
    }

    html body .workspace main .customer-list-panel > .customer-mobile-search-create > :is(.oa-open-modal,.permission-denied-create) {
        order: 2 !important;
        flex: 0 0 auto !important;
        width: auto !important;
        min-width: 58px !important;
        max-width: 92px !important;
        margin: 0 !important;
        padding-right: 12px !important;
        padding-left: 12px !important;
        white-space: nowrap !important;
    }
}


/* Income and expense lists switch by their real content width, not viewport width. */
.workspace .table-wrap.oa-narrow-finance-wrap {
    overflow: visible !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.workspace .table-wrap table.oa-narrow-finance-card {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    table-layout: auto !important;
    white-space: normal !important;
}

.workspace .table-wrap table.oa-narrow-finance-card > colgroup,
.workspace .table-wrap table.oa-narrow-finance-card > thead {
    display: none !important;
}

.workspace .table-wrap table.oa-narrow-finance-card > tbody {
    display: grid !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    gap: 10px !important;
}

.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 10px 12px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    border: 1px solid #dfe7e2 !important;
    border-radius: 11px !important;
    background: #fff !important;
    box-shadow: 0 2px 9px rgba(25,55,42,.05) !important;
}

.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr[hidden],
.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr[style*="display: none"],
.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr[style*="display:none"] {
    display: none !important;
}

.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td {
    display: grid !important;
    grid-column: 1/-1 !important;
    grid-template-columns: 72px minmax(0,1fr) !important;
    gap: 8px !important;
    align-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 7px 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    border: 0 !important;
    border-bottom: 1px dashed #e5ebe7 !important;
    color: #2f4038 !important;
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}

.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td[hidden],
.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td[style*="display: none"],
.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td[style*="display:none"],
.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td.mobile-list-core-hidden,
.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td.mobile-card-hidden {
    display: none !important;
}

.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td::before {
    content: attr(data-label);
    min-width: 0;
    color: #7a8981;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.35;
    text-align: left;
    white-space: nowrap;
}

.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td:last-child {
    border-bottom: 0 !important;
}

.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td.mobile-card-primary {
    display: block !important;
    order: -4;
    padding: 1px 0 8px !important;
    border-bottom: 1px solid #edf1ef !important;
    font-size: 15px !important;
    font-weight: 750 !important;
    line-height: 1.45 !important;
}

.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td.mobile-card-primary::before,
.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td.mobile-card-date::before,
.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td.mobile-card-status::before {
    display: none !important;
}

.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td.mobile-card-date,
.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td.mobile-card-status {
    display: block !important;
    width: 100% !important;
}

.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td.mobile-card-date {
    order: -3;
    overflow: hidden !important;
    color: #718078 !important;
    font-size: 12px !important;
    font-variant-numeric: tabular-nums;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td.mobile-date-only {
    font-size: 0 !important;
}

.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td.mobile-date-only::after {
    content: attr(data-mobile-date);
    color: #718078;
    font-size: 12px;
    line-height: 1.45;
    white-space: nowrap;
}

.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td.mobile-card-status {
    order: -2;
}

.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td.mobile-card-nowrap {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td.mobile-card-action {
    padding-top: 8px !important;
    border-top: 1px dashed #e4ebe7 !important;
    border-bottom: 0 !important;
}

.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td .actions,
.workspace .table-wrap table.oa-narrow-finance-card > tbody > tr > td form {
    justify-content: flex-start !important;
    max-width: 100% !important;
}
.new-media-fit-identities th:nth-child(2),.new-media-fit-identities td:nth-child(2){width:62px}
.new-media-status-alert td{background:#fffaf0!important}.new-media-status-alert:hover td{background:#fff4d9!important}
.new-media-status-danger td{background:#fff4f2!important}.new-media-status-danger:hover td{background:#ffe8e4!important}
.new-media-tag-normal{color:#17634f!important;background:#e5f3ec!important}
.new-media-tag-alert{color:#8a5a00!important;background:#fff0c7!important}
.new-media-tag-danger{color:#a33a2b!important;background:#ffe0db!important}
.inventory-list-table .inventory-product-cell small{display:inline!important;margin:0 0 0 6px!important}
.procurement-payment-cell{white-space:nowrap!important}
.procurement-payment-cell small{display:inline!important;margin:0 0 0 7px!important;color:var(--muted);font-size:11px}
.permission-rule-multi-picker{position:relative;z-index:1;min-width:0;width:100%;margin:0!important;align-self:start}
.permission-rule-multi-picker.is-open{z-index:1000}
.permission-rule-multi-picker>.advanced-relation-select[multiple][hidden],.permission-group-form .permission-partial-choices>select[hidden]{display:none!important}
.permission-rule-multi-display{display:flex!important;align-items:center;flex-wrap:wrap;gap:5px;width:100%!important;min-height:42px!important;height:auto!important;margin:0!important;padding:6px 36px 6px 8px!important;border:1px solid var(--line)!important;color:var(--text)!important;background:#fff!important;text-align:left!important}
.permission-rule-multi-display>b{position:absolute;right:12px;color:var(--muted)}
.permission-rule-multi-placeholder{color:var(--muted)}
.permission-rule-multi-chip{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:4px 7px;border-radius:6px;color:#17634f;background:#e4f1eb;font-size:12px}
.permission-rule-multi-chip i{cursor:pointer;font-style:normal;font-size:16px;line-height:1}
.permission-rule-multi-menu{position:absolute!important;z-index:1001!important;top:calc(100% + 7px)!important;right:0!important;left:0!important;display:none;max-height:290px;overflow:hidden;padding:7px;border:1px solid #d7e2dc;border-radius:9px;background:#fff;box-shadow:0 12px 28px rgba(20,55,42,.18);transform:none!important}
.permission-rule-multi-picker.is-open .permission-rule-multi-menu{display:block}
.permission-rule-multi-search{width:100%!important;height:38px!important;margin:0 0 6px!important}
.permission-rule-multi-choices{display:grid;max-height:225px;overflow:auto}
.permission-rule-multi-choices label{display:flex!important;align-items:center;gap:8px;margin:0!important;padding:8px;border-radius:6px;cursor:pointer}
.permission-rule-multi-choices label:hover{background:#edf5f1}
.permission-rule-multi-choices input{flex:0 0 16px;width:16px!important;height:16px!important;min-height:16px!important;margin:0!important}
.advanced-rule-row:has(.permission-rule-multi-picker.is-open){position:relative;z-index:999!important}
.advanced-rule-value:has(.permission-rule-multi-picker){padding-top:20px!important;align-self:start!important}
.table-width-tip{display:none!important}
.header-password-link{display:inline-flex;align-items:center;padding:7px 11px;border:1px solid #d8e3dc;border-radius:8px;color:#17634f;background:#fff;text-decoration:none;font-size:13px;white-space:nowrap}
.generic-detail-page,.modal-detail-page{padding:10px!important}
.detail-with-activity{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:10px!important;align-items:start}
.detail-main{min-width:0}
@media(max-width:900px){.detail-with-activity{grid-template-columns:1fr}}
.generic-detail-main{padding:12px!important}
.generic-field-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:9px!important;margin-top:9px!important}
.generic-field-grid>div{padding:8px 9px!important}
.generic-field-grid small{margin-bottom:2px!important;font-size:11px}
.generic-field-grid strong{font-size:13px}
.employee-profile{padding:12px!important}
.employee-profile .profile-grid{gap:7px!important;margin-top:9px!important}
.employee-profile .profile-grid>div{padding:8px 9px!important}
.account-base-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.account-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.project-totals{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.employee-profile .profile-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.activity-column{min-width:0;padding:11px!important;border:1px solid #e1e8e4;border-radius:12px;background:#fff;box-sizing:border-box}
.activity-column h3{margin-bottom:9px!important;font-size:14px}
.activity-column article{padding-bottom:11px!important;padding-left:13px!important}
.child-table{padding:10px!important}
.detail-tabs{margin-top:10px!important}
.unified-detail-main{min-width:0}.unified-detail-main>.generic-detail-main{margin:0}.unified-detail-main>.media-device-children,.unified-detail-main>.media-sim-children,.unified-detail-main>.media-identity-children,.unified-detail-main>.product-cost-children{margin-top:10px}.media-device-children>.detail-tabs,.media-sim-children>.detail-tabs,.media-identity-children>.detail-tabs,.product-cost-children>.detail-tabs{margin-top:10px!important}.media-device-children>.detail-tab-panel,.media-sim-children>.detail-tab-panel,.media-identity-children>.detail-tab-panel,.product-cost-children>.detail-tab-panel{margin-top:10px;padding:10px;border:1px solid #dfe7e2;border-radius:10px;background:#fff}.detail-main>.detail-tab-panel{width:100%;box-sizing:border-box}
@media(max-width:760px){.generic-field-grid,.account-base-grid,.account-stats-grid,.project-totals,.employee-profile .profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:520px){.generic-field-grid,.account-base-grid,.account-stats-grid,.project-totals,.employee-profile .profile-grid{grid-template-columns:1fr!important}}
.header-user{position:relative}
.user-menu-trigger{display:flex;align-items:center;gap:9px;width:auto;margin:0;padding:5px 8px 5px 5px;color:#253b31;background:transparent}
.user-menu-trigger:hover{background:#f1f5f2}
.user-menu-trigger .user-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:#fff;background:#17634f;font-weight:800}
.user-menu-trigger b{font-size:14px}.user-menu-trigger i{color:#819087;font-style:normal}
.user-menu-popup{position:absolute;top:calc(100% + 9px);right:0;z-index:30;display:none;width:150px;padding:7px;border:1px solid #dfe7e2;border-radius:10px;background:#fff;box-shadow:0 12px 35px rgba(24,50,38,.16)}
.user-menu-popup:before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px;background:transparent}
.header-user:hover .user-menu-popup,.header-user.is-open .user-menu-popup{display:block}
.user-menu-popup .header-password-link,.user-menu-popup .logout{display:flex;justify-content:flex-start;width:100%;margin:0;padding:9px 10px;border:0;border-radius:7px;color:#35493f;background:transparent;font-size:13px}
.user-menu-popup .header-password-link:hover,.user-menu-popup .logout:hover{background:#edf3ef;color:#17634f}
.user-password-dialog{width:min(680px,94vw)}.user-password-dialog .oa-modal-frame{height:440px}
.detail-record-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin:0 0 9px}
.detail-record-actions form{margin:0}.detail-record-actions .button,.detail-record-actions button{width:auto;min-width:76px;margin:0;padding:7px 13px;font-size:12px}
.detail-record-actions .danger-action,.danger-action{background:#9f4039}
.account-number-row{padding:9px 10px;border-radius:8px;background:#edf3ef;overflow-wrap:anywhere}
.account-number-row small,.account-number-row strong{display:block}.account-number-row small{color:#74837b;font-size:12px}.account-number-row strong{margin-top:3px;font-size:14px}
.account-base-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.account-stats-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important;margin-top:8px!important}
@media(max-width:800px){.account-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
.modal-header-actions{display:flex;align-items:center;gap:7px;margin-left:auto;margin-right:8px}
.modal-header-actions form{margin:0}.modal-header-actions .button,.modal-header-actions button{width:auto;min-width:76px;margin:0;padding:7px 12px;font-size:12px}.detail-tabs{display:flex!important;flex-wrap:nowrap!important;align-items:center;gap:8px;overflow-x:auto}.detail-tab{flex:0 0 auto!important}.detail-tab-panel[hidden]{display:none!important}
.modal-header-actions .danger-action{background:#9f4039}
.detail-action-split{position:relative;display:flex;align-items:stretch}.detail-action-split .detail-action-edit{display:flex;align-items:center;justify-content:center;min-width:96px!important;margin:0!important;padding:7px 18px!important;border-radius:7px 0 0 7px!important}.detail-action-arrow{width:25px!important;min-width:25px!important;margin:0!important;padding:0!important;border-left:1px solid rgba(255,255,255,.28)!important;border-radius:0 7px 7px 0!important;background:#17634f!important;color:#fff!important;font-size:13px!important}.detail-action-split.is-open .detail-action-arrow{background:#0f503f!important}.detail-action-menu{position:absolute;top:calc(100% + 7px);right:0;z-index:20;display:none;min-width:118px;padding:6px;border:1px solid #dfe7e2;border-radius:9px;background:#fff;box-shadow:0 12px 30px rgba(28,48,39,.2)}.detail-action-split.is-open .detail-action-menu{display:block}.detail-action-menu form{display:block!important;width:100%;margin:0!important}.detail-action-menu button{display:block;width:100%!important;margin:0!important;padding:9px 11px!important;border-radius:6px!important;text-align:left;font-size:13px!important}.detail-action-menu .danger-action{color:#a13b34!important;background:transparent!important}.detail-action-menu .danger-action:hover{color:#fff!important;background:#a13b34!important}
.modal-header-actions>.financial-detail-copy,.detail-action-split .financial-detail-copy{width:auto!important;min-width:68px!important;margin:0!important;padding:7px 14px!important;border-radius:7px!important;background:#eef5f1!important;color:#17634f!important;border:1px solid #bdd8cb!important}
.modal-header-actions:has(>.financial-detail-copy){flex:0 0 auto!important;flex-wrap:nowrap!important}.modal-header-actions>.financial-detail-copy{order:1;flex:0 0 auto!important}.modal-header-actions>.record-header-edit-cancel{order:2;flex:0 0 auto!important}.modal-header-actions>.detail-action-split{order:3;flex:0 0 auto!important}
.expense-copy-create-modal{width:min(1080px,96vw)!important;max-width:96vw!important;height:min(650px,90vh)!important;overflow:hidden!important}.expense-copy-create-modal>.oa-modal-body{height:calc(100% - 74px)!important;min-height:0!important;padding:12px!important;overflow:hidden!important}.expense-copy-create-modal .oa-modal-frame{display:block!important;width:100%!important;height:100%!important;min-height:0!important}
.modal-header-actions .nested-product-component-unlink{display:flex!important;align-items:center!important;justify-content:center!important;width:96px!important;min-width:96px!important;margin:0!important;padding:7px 12px!important;border-radius:7px!important}
.nested-product-actions-loading{pointer-events:none}
/* Keep header action menus above the detail iframe, including nested procurement details. */
#oa-detail-dialog[open]{
  overflow:visible!important;
}
#oa-detail-dialog > .oa-modal-head{
  position:relative;
  z-index:60;
  overflow:visible;
  border-radius:16px 16px 0 0;
}
#oa-detail-dialog > .oa-modal-body{
  position:relative;
  z-index:1;
  border-radius:0 0 16px 16px;
}
#oa-detail-dialog > .oa-modal-head .modal-header-actions,
#oa-detail-dialog > .oa-modal-head .detail-action-split{
  overflow:visible;
}
#oa-detail-dialog > .oa-modal-head .detail-action-menu{
  z-index:1000;
}
#oa-detail-dialog > .oa-modal-head .modal-header-actions:has(.talent-sheet-action-more){position:relative;z-index:1002;overflow:visible!important}
#oa-detail-dialog > .oa-modal-head .modal-header-actions:has(.talent-sheet-action-more) .detail-action-split{position:relative;overflow:visible!important}
#oa-detail-dialog > .oa-modal-head .modal-header-actions:has(.talent-sheet-action-more) .detail-action-menu{top:calc(100% + 7px)!important;right:0!important;z-index:1005!important}
.employee-profile .profile-head{display:none!important}
.departure-card,.detail-top-action{display:none!important}
.oa-inline-edit-panel{margin:0!important;padding:14px!important}
.oa-inline-edit-panel form{width:100%}
.detail-with-activity.is-editing{grid-template-columns:minmax(0,1fr)!important}.detail-with-activity.is-editing>.activity-column{display:none!important}.detail-with-activity.is-editing>.detail-main{width:100%;max-width:none}.oa-detail-editing .oa-inline-edit-panel{width:100%;max-width:none}.oa-detail-editing .oa-inline-edit-panel form,.oa-detail-editing .oa-inline-edit-panel .form-grid,.oa-detail-editing .oa-inline-edit-panel .generic-edit-grid{width:100%;min-width:0}.oa-detail-editing .oa-inline-edit-panel label,.oa-detail-editing .oa-inline-edit-panel input,.oa-detail-editing .oa-inline-edit-panel select,.oa-detail-editing .oa-inline-edit-panel textarea{min-width:0;max-width:100%}
.oa-inline-edit-panel .generic-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.oa-inline-edit-panel .generic-edit-grid textarea{min-height:44px}.oa-inline-edit-panel .generic-edit-grid .span-2{grid-column:1/-1}@media(max-width:600px){.oa-inline-edit-panel .generic-edit-grid{grid-template-columns:1fr}.oa-inline-edit-panel .generic-edit-grid .span-2{grid-column:1}}
.oa-inline-edit-panel .oa-inline-edit-footer{display:flex;justify-content:flex-end;margin-top:12px}
.oa-inline-edit-panel .oa-inline-edit-footer .button{width:auto;margin:0;padding:10px 18px;background:#e9efeb;color:#33483e}
.oa-inline-edit-panel form>button{width:auto;min-width:110px}
html,body{max-width:100%;overflow-x:hidden}
.app-shell,.workspace,.workspace>main,.panel,.table-wrap,.detail-main,.generic-detail-main{min-width:0;max-width:100%}
.workspace{width:100%;overflow-x:hidden}
.table-wrap{width:100%;overflow-x:auto!important;overflow-y:hidden;overscroll-behavior-inline:contain}
.table-wrap table{width:100%!important;min-width:var(--oa-table-min-width,680px)!important;table-layout:auto;white-space:nowrap!important}
.table-wrap th,.table-wrap td{max-width:280px;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis}
.customer-table-wrap table{min-width:var(--oa-table-min-width,980px)!important}
.product-list-wrap{scrollbar-gutter:stable}.product-list-table{min-width:1540px!important}.product-list-table th:first-child,.product-list-table td:first-child{position:sticky;left:0;z-index:2;min-width:150px}.product-list-table th:first-child{z-index:5}.product-list-table td:first-child{background:#fff}.product-list-table tr:nth-child(even) td:first-child{background:#fafcfb}.product-list-table tr:hover td:first-child{background:#edf8f2}
.inventory-list-table .inventory-product-cell{min-width:180px}.inventory-product-cell small{display:block;margin-top:3px;color:#7a8981;font-size:11px}
input,select,textarea,.project-combobox{max-width:100%;min-width:0}
.actions{flex-wrap:wrap}
.mobile-nav-toggle,.mobile-nav-close,.mobile-nav-backdrop{display:none}
@media(max-width:900px){
  .workspace>header{
    position:sticky;
    z-index:1100;
    top:0;
    flex:0 0 auto;
    background:#fff;
    box-shadow:0 4px 16px rgba(25,55,42,.08);
  }
  .impersonation-banner~.app-shell .workspace>header{top:48px}
  .app-shell aside{display:block!important;position:fixed!important;z-index:1200;top:0;left:0;width:min(82vw,300px);height:100dvh;max-height:none!important;transform:translateX(-105%);transition:transform .22s ease;box-shadow:16px 0 45px rgba(0,0,0,.28)}
  body.mobile-nav-open{overflow:hidden}
  body.mobile-nav-open .app-shell aside{transform:translateX(0)}
  .mobile-nav-toggle{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;margin:0 12px 0 0;padding:0;border-radius:10px;background:#edf3ef;color:#174f3e;font-size:23px;line-height:1}
  .workspace>header>div:first-child{display:flex;align-items:center;min-width:0}
  .workspace>header>div:first-child>div{min-width:0}
  .workspace>header h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mobile-nav-close{display:grid;place-items:center;position:absolute;z-index:2;top:18px;right:14px;width:36px;height:36px;margin:0;padding:0;border-radius:9px;background:rgba(255,255,255,.1);color:#fff;font-size:24px}
  .mobile-nav-backdrop{display:block;position:fixed;z-index:1190;inset:0;border:0;margin:0;padding:0;background:rgba(11,24,18,.52);opacity:0;pointer-events:none;transition:opacity .22s ease}
  body.mobile-nav-open .mobile-nav-backdrop{opacity:1;pointer-events:auto}
  .workspace>main{width:100%;max-width:100vw;overflow-x:hidden}
  .table-wrap table,.table-wrap thead,.table-wrap tbody,.table-wrap tr,.table-wrap th,.table-wrap td{display:block;width:100%;max-width:none}
  .table-wrap table,.product-list-table{min-width:0!important}
  .table-wrap thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .table-wrap tbody{display:grid;gap:12px}
  .table-wrap tbody tr{padding:7px 12px;border:1px solid #dfe7e2;border-radius:12px;background:#fff;box-shadow:0 3px 12px rgba(25,55,42,.05)}
  .table-wrap tbody td{display:grid;grid-template-columns:minmax(88px,38%) minmax(0,62%);gap:10px;align-items:start;padding:9px 0!important;border-bottom:1px dashed #e5ebe7;text-align:right}
  .product-list-table th:first-child,.product-list-table td:first-child{position:static;min-width:0}.inventory-list-table .inventory-product-cell{min-width:0}.inventory-product-cell small{display:inline;margin:0 0 0 6px}
  .table-wrap tbody td:last-child{border-bottom:0}
  .table-wrap tbody td:before{content:attr(data-label);color:#74837b;font-size:12px;font-weight:700;text-align:left}
  .table-wrap tbody td[colspan]{display:block;text-align:center}
  .table-wrap tbody td[colspan]:before{display:none}
  .table-wrap tbody td .actions,.table-wrap tbody td form{justify-content:flex-end;max-width:100%}
  .table-wrap tbody td button,.table-wrap tbody td .button{width:auto;max-width:100%}
}
@media(max-width:720px){.impersonation-banner~.app-shell .workspace>header{top:92px}}
@media(max-width:560px){
  .workspace>header{height:76px}
  .workspace>header .eyebrow{display:none}
  .workspace>header h1{font-size:18px}
  .header-user{gap:6px}
  .user-menu-trigger{max-width:132px}
}

/* Refined sidebar navigation */
.app-shell aside{padding:22px 14px;background:linear-gradient(180deg,#102f26 0%,#0d251e 100%);border-right:1px solid rgba(255,255,255,.04);scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}
.side-brand{margin:0 4px 16px;padding:4px 6px 22px;border-bottom:1px solid rgba(255,255,255,.08)}
.side-brand>span{border-radius:12px;background:linear-gradient(145deg,#f0d59a,#cda75d);box-shadow:0 7px 20px rgba(0,0,0,.22)}
.grouped-nav{display:flex!important;flex-direction:column;gap:7px}
.grouped-nav .nav-home{position:relative;margin:0 0 7px;padding:11px 13px 11px 40px;border:1px solid transparent;border-radius:11px;color:#c7d7d0;background:rgba(255,255,255,.035);font-size:13px;font-weight:700;transition:.18s ease}
.grouped-nav .nav-home:before{content:"";position:absolute;left:17px;top:50%;width:8px;height:8px;border:2px solid #d7b875;border-radius:3px;transform:translateY(-50%) rotate(45deg)}
.grouped-nav .nav-home:hover{color:#fff;border-color:rgba(255,255,255,.08);background:rgba(255,255,255,.07)}
.grouped-nav .nav-home.active{color:#17382e;background:linear-gradient(135deg,#f0d9a6,#d9b870);box-shadow:0 7px 18px rgba(0,0,0,.2)}
.grouped-nav .nav-home.active:before{border-color:#17382e;background:#17382e}
.grouped-nav .nav-group{margin:0;padding:0;border:0;border-radius:12px;background:rgba(255,255,255,.018)}
.grouped-nav .nav-group>p{min-height:44px;margin:0;padding:8px 43px 8px 9px;border:1px solid transparent;border-radius:11px;color:#a6bbb2;font-size:12px;letter-spacing:.04em;transition:.18s ease}
.grouped-nav .nav-group>p:hover,.grouped-nav .nav-group>p:focus{color:#eef6f2;border-color:rgba(255,255,255,.07);background:rgba(255,255,255,.055)}
.grouped-nav .nav-group:not(.is-collapsed)>p{color:#f2f6f4;background:rgba(255,255,255,.06)}
.grouped-nav .nav-group p span{width:26px;height:26px;border:1px solid rgba(226,189,118,.18);border-radius:8px;color:#e5c886;background:rgba(226,189,118,.1);font-size:12px}
.grouped-nav .nav-group>p:after{content:"";right:16px;top:16px;width:7px;height:7px;border-right:2px solid #8fa89d;border-bottom:2px solid #8fa89d;transform:rotate(45deg);transition:transform .2s ease,top .2s ease}
.grouped-nav .nav-group.is-collapsed>p:after{top:18px;transform:rotate(-45deg)}
.grouped-nav .nav-group-count{position:absolute;right:30px;margin:0;padding:0;color:#6f9082;background:transparent;font-size:10px}
.grouped-nav .nav-group>a{position:relative;display:flex;align-items:center;gap:8px;margin:3px 5px;padding:10px 12px 10px 40px;border:1px solid transparent;border-radius:9px;color:#9fb5ac;font-size:13px;transition:color .16s ease,background .16s ease,transform .16s ease}
.grouped-nav .nav-group-count{display:none!important}.grouped-nav .nav-item-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grouped-nav .nav-item-badge{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:20px;height:20px;margin-left:auto;padding:0 6px;border-radius:999px;color:#fff;background:#d25a50;box-shadow:0 2px 7px rgba(210,90,80,.28);font-size:11px;font-weight:800;line-height:1}
.grouped-nav .nav-group>p>.nav-group-todo-badge{position:absolute;right:31px;display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:20px;height:20px;padding:0 6px;border:0;border-radius:999px;color:#fff;background:#d25a50;box-shadow:0 2px 8px rgba(210,90,80,.32);font-size:11px;font-weight:800;line-height:1;letter-spacing:0}
.grouped-nav .nav-group>a:before{content:"";position:absolute;left:21px;top:50%;width:5px;height:5px;border-radius:50%;background:#476d5e;transform:translateY(-50%);transition:.16s ease}
.grouped-nav .nav-group>a:hover{color:#f4f8f6;background:rgba(255,255,255,.055);transform:translateX(2px)}
.grouped-nav .nav-group>a:hover:before{background:#d9bd83}
.grouped-nav .nav-group>a.active{color:#fff;border-color:rgba(226,189,118,.18);background:linear-gradient(90deg,rgba(226,189,118,.2),rgba(255,255,255,.065));box-shadow:inset 3px 0 #e2bd76,0 5px 14px rgba(0,0,0,.12);font-weight:750}
.grouped-nav .nav-group>a.active:before{width:7px;height:7px;background:#f0d08e;box-shadow:0 0 0 4px rgba(226,189,118,.12)}
@media(max-width:900px){.app-shell aside{padding-top:22px}.side-brand{padding-right:44px}.grouped-nav .nav-group>a{padding-top:12px;padding-bottom:12px}}
.quotation-products-v203 th:nth-child(3),.quotation-products-v203 td:nth-child(3){width:72px;max-width:72px}.quotation-products-v203 .quote-remove-icon{display:inline-grid!important;place-items:center;width:28px!important;height:28px!important;min-width:28px!important;margin:0!important;padding:0!important;border-radius:50%!important;font-size:18px!important;line-height:1!important}.quotation-general-remark textarea{min-height:58px!important}

.customer-quotation-form .quotation-head-inline {
    display: grid !important;
    grid-template-columns: minmax(220px, 260px) 190px minmax(260px, 1fr) !important;
    align-items: end !important;
    gap: 12px !important;
}

.customer-quotation-form .quotation-head-inline > label {
    min-width: 0 !important;
    margin: 0 !important;
}

.customer-quotation-form .quotation-head-inline input,
.customer-quotation-form .quotation-head-inline select,
.customer-quotation-form .quotation-head-inline .project-search-input {
    width: 100% !important;
    min-width: 0 !important;
    height: 44px !important;
    min-height: 44px !important;
    margin-top: 7px !important;
    box-sizing: border-box !important;
}

.customer-quotation-form .quotation-head-inline .project-combobox,
.customer-quotation-form .quotation-head-inline .relation-search-combobox {
    width: 100% !important;
    min-width: 0 !important;
}

.customer-quotation-form .quotation-products {
    width: 100% !important;
    max-width: 100% !important;
    max-height: calc(78vh - 235px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
}

.customer-quotation-form .quotation-products-v203 {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    table-layout: fixed !important;
}

.customer-quotation-form .quotation-products-v203 th,
.customer-quotation-form .quotation-products-v203 td {
    min-width: 0 !important;
    max-width: none !important;
    padding: 10px 7px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.customer-quotation-form .quotation-products-v203 input {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

.customer-quotation-form .quotation-products-v203 th:nth-child(3),
.customer-quotation-form .quotation-products-v203 td:nth-child(3) {
    width: auto !important;
    max-width: none !important;
}

.customer-quotation-form .quotation-products-v203 td:nth-child(1),
.customer-quotation-form .quotation-products-v203 td:nth-child(2),
.customer-quotation-form .quotation-products-v203 td:nth-child(7) {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}

@media(max-width:760px) {
    .customer-quotation-form .quotation-head-inline {
        grid-template-columns: 1fr 1fr !important;
    }

    .customer-quotation-form .quotation-head-inline .quotation-general-remark {
        grid-column: 1/-1 !important;
    }

    .customer-quotation-form .quotation-products {
        overflow-x: auto !important;
    }

    .customer-quotation-form .quotation-products-v203 {
        min-width: 760px !important;
    }
}
.workspace>main{min-height:calc(100vh - 96px);transition:opacity .12s ease}body.oa-page-loading .workspace>main{opacity:.55;pointer-events:none}body.oa-page-loading{cursor:progress}@media(prefers-reduced-motion:reduce){.workspace>main{transition:none}}

/* v0.15.816: keep desktop navigation/header fixed and scroll only the workspace content. */
@media(min-width:901px){
  html,body{height:100%;overflow:hidden}
  .app-shell{height:100vh;min-height:0;overflow:hidden}
  .impersonation-banner~.app-shell{height:calc(100vh - 48px)}
  .app-shell>aside{position:relative;top:auto;height:100%;max-height:none;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
  .workspace{display:grid;width:100%;height:100%;min-height:0;grid-template-rows:96px minmax(0,1fr);overflow:hidden}
  .workspace>header{position:relative;z-index:20;flex:0 0 96px;height:96px}
  .workspace>main{height:100%;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
}

/* Payroll filters and polished expandable details */
.payroll-filter-form{display:grid!important;grid-template-columns:minmax(150px,.8fr) minmax(150px,.8fr) minmax(260px,1.5fr) auto!important;align-items:end;gap:14px}
.payroll-filter-form>button{width:auto;min-width:150px;height:44px;margin:0;white-space:nowrap}
.payroll-review-table .payroll-summary-row{transition:background .2s ease,box-shadow .2s ease}
.payroll-review-table .payroll-summary-row.is-open{background:#edf6f1;box-shadow:inset 3px 0 #2b8065}
.payroll-review-table .payroll-expand-icon{width:92px;text-align:center}
.payroll-expand-label{display:inline-flex;align-items:center;justify-content:center;min-width:66px;padding:5px 9px;border:1px solid #d4e4dc;border-radius:999px;color:#517064;background:#f5faf7;font-size:12px;transition:color .2s,background .2s,border-color .2s,box-shadow .2s,transform .2s}
.payroll-summary-row:hover .payroll-expand-label{color:#17634f;border-color:#acd0bf;background:#eaf5ef;box-shadow:0 4px 12px rgba(24,99,79,.1);transform:translateY(-1px)}
.payroll-review-table .payroll-summary-row.is-open .payroll-expand-label{color:#fff;border-color:#28765f;background:#28765f;box-shadow:0 5px 14px rgba(24,99,79,.2);transform:none}
.payroll-day-detail .payroll-day-box{overflow:hidden;transform-origin:top}
.payroll-day-detail .payroll-day-box table{border:1px solid #dfe9e3;box-shadow:0 8px 22px rgba(26,64,48,.07)}
@media(max-width:900px){.payroll-filter-form{grid-template-columns:1fr 1fr!important}.payroll-filter-form>label:nth-of-type(3){grid-column:1/-1}.payroll-filter-form>button{grid-column:1/-1;width:100%}}
@media(max-width:560px){.payroll-filter-form{grid-template-columns:1fr!important}.payroll-filter-form>label,.payroll-filter-form>button{grid-column:1!important}}
.employee-list-toolbar{display:flex!important;align-items:center!important;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.employee-list-toolbar>.oa-open-modal{flex:0 0 auto;margin-left:auto}.employee-filter-bar{display:flex;align-items:end;gap:8px;flex:1 1 680px;min-width:0;margin:0;padding:10px 12px;border:1px solid #dfe7e2;border-radius:11px;background:#f8faf9}.employee-filter-bar label{display:flex;align-items:center;gap:7px;min-width:0;margin:0;color:#64756c;font-size:12px;white-space:nowrap}.employee-filter-bar label span{font-weight:700}.employee-filter-bar select{width:auto;min-width:135px;margin:0;padding:8px 30px 8px 10px;background:#fff}.employee-filter-bar button{width:auto;margin:0;padding:9px 17px}.employee-filter-reset{display:inline-flex;align-items:center;justify-content:center;padding:9px 12px;border:1px solid #d6e1db;border-radius:8px;color:#17634f;background:#fff;text-decoration:none;font-size:13px}
.organization-company,.organization-department,.organization-position{display:block;width:100%;max-width:100%}
.employee-form>.organization-company-field{width:100%;min-width:0}
.temp-work-remark-field{grid-column:1/-1}.temp-work-remark-field textarea{height:44px;min-height:44px}.temp-work-save-button{grid-column:2;width:auto;min-width:110px;justify-self:end}@media(max-width:600px){.temp-work-save-button{grid-column:1}}
#piecework-form>.alert,#piecework-form>.success,#piecework-form>.oa-save-feedback,#piecework-form>.oa-select-validation-error,#piecework-form>.oa-inline-edit-error{grid-column:1/-1;width:100%;min-width:0;margin:0 0 4px;overflow-wrap:anywhere;word-break:break-word}
#piecework-form>label{min-width:0}
.product-child-tabs{display:flex;align-items:center;gap:6px}.product-child-tabs .product-cost-add{width:auto;margin:0 0 0 auto;padding:8px 13px}.product-component-cost-row td:first-child{font-weight:700}.product-child-create-modal{width:min(760px,94vw);max-height:90vh}.product-child-create-modal .oa-modal-body{padding:0;overflow:hidden}.product-child-create-modal .oa-modal-frame{display:block;width:100%;height:min(680px,76vh);border:0}
.product-child-cost-table tbody tr[data-detail-url]{cursor:pointer}.product-child-cost-table tbody tr[data-detail-url]:hover td{background:#eef7f2!important}
.project-combobox{position:relative;width:100%;margin-top:7px}.project-combobox .project-search-input{margin:0;padding-right:38px;background:#fbfcfb}.project-combobox:after{content:"⌄";position:absolute;right:13px;top:10px;color:#718078;pointer-events:none}.native-project-select{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;opacity:0!important;pointer-events:none}.project-search-menu{display:none;position:absolute;z-index:1600;left:0;right:0;top:calc(100% + 5px);max-height:260px;padding:6px;overflow-y:auto;border:1px solid #d9e3dd;border-radius:10px;background:#fff;box-shadow:0 14px 35px rgba(22,49,37,.18)}.project-search-menu.is-open{display:block}.project-search-option{display:block;width:100%;margin:0;padding:10px 11px;border-radius:7px;color:#263b31;background:transparent;text-align:left;font-size:13px;font-weight:500}.project-search-option:hover,.project-search-option:focus{color:#155e4b;background:#edf5f0;outline:0}.project-search-empty{padding:18px 10px;color:#829188;text-align:center;font-size:13px}
.relation-search-group{position:sticky;top:-6px;z-index:1;margin:4px -1px 3px;padding:7px 10px;border-bottom:1px solid #dfe9e3;color:#557066;background:#f4f8f6;font-size:12px;font-weight:700;letter-spacing:.02em}.relation-search-group:first-child{margin-top:-1px}.relation-search-group+.project-search-option{margin-top:2px}
@media(max-width:900px){.employee-list-toolbar{align-items:stretch!important}.employee-filter-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto auto;flex-basis:100%}.employee-filter-bar label{display:block}.employee-filter-bar label span{display:block;margin-bottom:4px}.employee-filter-bar select{width:100%;min-width:0}.employee-list-toolbar>.oa-open-modal{order:-1;margin-left:auto}}
@media(max-width:620px){.employee-filter-bar{grid-template-columns:1fr 1fr}.employee-filter-bar label:nth-of-type(3){grid-column:1/-1}.employee-filter-bar button,.employee-filter-reset{width:100%}}
.oa-save-feedback{grid-column:1/-1;padding:10px 12px;border-radius:9px;background:#eef5f1;color:#315c49;font-size:14px}.oa-save-feedback.is-error{background:#fff0ef;color:#a13b34;border:1px solid #efc5c1}.oa-save-feedback.is-success{background:#eaf7ef;color:#167253;border:1px solid #bce2ca}
.oa-modal-body>form,.oa-embedded-edit-panel form,.oa-inline-edit-panel form{display:grid}.oa-modal-body>form>button:last-child,.oa-embedded-edit-panel form>button:last-child,.oa-inline-edit-panel form>button:last-child{justify-self:end;width:auto;min-width:112px;margin-top:14px}.oa-inline-edit-footer{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px}#piecework-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}#piecework-form label{margin:0}#piecework-form label.span-2,#piecework-form>button{grid-column:1/-1}#piecework-form>button{justify-self:end;width:auto;min-width:120px}@media(max-width:640px){#piecework-form{grid-template-columns:1fr}#piecework-form label.span-2,#piecework-form>button{grid-column:1}}
.oa-modal:has(.piecework-standard-form),.oa-modal:has(#piecework-form){width:min(720px,94vw)}.oa-modal:has(.piecework-standard-form){overflow:visible}.oa-modal:has(.piecework-standard-form) .oa-modal-head{border-radius:16px 16px 0 0}.oa-modal:has(.piecework-standard-form) .oa-modal-body{overflow:visible;border-radius:0 0 16px 16px}.oa-modal:has(.piecework-standard-form) .oa-modal-body,.oa-modal:has(#piecework-form) .oa-modal-body{padding:18px}.oa-modal:has(.piecework-standard-form) .oa-modal-body>form,.oa-modal:has(#piecework-form) .oa-modal-body>form{padding:18px}.piecework-standard-form :is(input,select,textarea),.piecework-standard-form .piecework-employee-display{box-sizing:border-box;width:100%!important;height:44px!important;min-height:44px!important}.piecework-standard-form :is(input,select,textarea){padding-top:9px!important;padding-bottom:9px!important}.piecework-standard-form .piecework-employee-picker{margin-top:7px}.piecework-standard-form .piecework-employee-picker.is-open{z-index:10030}.piecework-standard-form .piecework-employee-display{flex-wrap:nowrap;overflow:hidden;margin:0!important;padding-top:7px!important;padding-bottom:7px!important}#piecework-form label.span-2{grid-column:auto}#piecework-form textarea{height:44px;min-height:44px;resize:vertical}@media(max-width:640px){.oa-modal:has(.piecework-standard-form),.oa-modal:has(#piecework-form){width:98vw}.oa-modal:has(.piecework-standard-form) .oa-modal-body,.oa-modal:has(#piecework-form) .oa-modal-body{padding:10px}}
.piecework-standard-form>label{position:relative;overflow:visible}.piecework-standard-form .piecework-employee-picker{isolation:isolate}.piecework-standard-form .piecework-employee-picker.is-open{z-index:10050}.piecework-standard-form .piecework-employee-menu{right:0;left:auto;width:min(430px,calc(100vw - 48px));min-width:100%;max-width:none;padding:10px;border-radius:10px;box-shadow:0 18px 42px rgba(20,49,37,.22)}.piecework-standard-form .piecework-employee-search{height:38px!important;min-height:38px!important;margin:0 0 7px!important;padding:8px 10px!important}.piecework-standard-form .piecework-employee-choice{min-height:38px;padding:7px 8px!important}.piecework-standard-form .piecework-employee-choice input{appearance:auto!important;width:17px!important;height:17px!important;min-height:17px!important;margin:0!important;padding:0!important;accent-color:#24765d}.piecework-standard-form .piecework-employee-choice span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.piecework-standard-form .piecework-employee-display{justify-content:flex-start;padding-right:34px!important}.piecework-standard-form .piecework-employee-chip{flex:0 1 auto;min-width:0}.piecework-employee-count{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;min-width:25px;height:24px;padding:0 6px;border-radius:999px;color:#246b55;background:#dceee5;font-size:12px;font-weight:700}@media(max-width:600px){.piecework-standard-form .piecework-employee-menu{position:absolute;right:0;left:0;width:100%;min-width:100%}}
.activity-column,.activity-column article,.activity-column article div,.activity-column article span,.activity-column article strong,.activity-column article p,.activity-column article b{min-width:0;max-width:100%;box-sizing:border-box}.activity-column article div{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;align-items:start}.activity-column article span,.activity-column article strong,.activity-column article p,.activity-column article b{overflow-wrap:anywhere;word-break:break-word;white-space:normal}.activity-column article span,.activity-column article strong{display:block;max-height:120px;overflow:auto;padding:3px 4px;border-radius:5px}.activity-column article i{align-self:start;padding-top:4px}
.delivery-template-picker{width:min(560px,94vw)}.delivery-template-options{display:grid;gap:10px;padding:4px}.delivery-template-option{display:grid;grid-template-columns:1fr;gap:4px;width:100%;margin:0;padding:14px 16px;text-align:left;color:#264438;background:#f2f7f4;border:1px solid #dce7e1;border-radius:10px}.delivery-template-option:hover{color:#fff;background:#17634f;border-color:#17634f}.delivery-template-option b{font-size:15px}.delivery-template-option span{font-size:12px;opacity:.78}
.purchase-form textarea[name="remark"]{height:42px;min-height:42px;resize:vertical}
.product-component-builder{padding:12px;border:1px solid #dfe7e2;border-radius:10px;background:#f7faf8}.product-component-builder .section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.product-component-builder .section-head button{width:auto;margin:0}.product-component-rows{display:grid;gap:8px}.product-component-row{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;gap:8px}.product-component-row select,.product-component-row input,.product-component-row button{margin:0}.product-component-row button{width:auto}.product-cost-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}.product-cost-summary span{padding:10px;border-radius:8px;background:#edf4f0}.product-cost-summary b{float:right;color:#17634f}@media(max-width:620px){.product-component-row{grid-template-columns:1fr 90px}.product-component-row button{grid-column:1/-1}.product-cost-summary{grid-template-columns:1fr}}
.detail-tabs .product-cost-add{flex:0 0 auto;width:auto;margin:0 0 0 auto;padding:9px 14px;background:#17634f;color:#fff}
.product-child-create-modal .product-child-loader{display:grid;min-height:180px;place-items:center;color:#728178;font-size:13px}
.product-child-create-modal:not(.is-ready) .oa-modal-frame{display:none!important}
.product-child-create-modal.is-ready .product-child-loader{display:none}
.product-cost-image-layout .record-stable-image-control{height:44px!important;margin-top:6px!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important}
.product-cost-image-layout .record-stable-image-row{height:44px!important}
.product-cost-image-layout .record-stable-image-row input[type="file"],.product-cost-image-layout .record-stable-image-row>.upload-input-shell{height:44px!important;min-height:44px!important;margin:0!important}
.product-cost-image-layout .record-stable-image-preview-button{height:44px!important;margin:0!important}
.product-cost-image-layout .record-stable-image-control small{display:none!important}
.inventory-form textarea[name="remark"]{height:42px;min-height:42px;resize:vertical}
.detail-tabs .product-cost-add+.product-cost-add{margin-left:6px}
.product-cost-create-form>button{grid-column:1/-1;justify-self:end;width:auto!important;min-width:96px;margin:0!important}
.settings-page{max-width:1180px;margin:0 auto}.settings-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px;padding:24px 26px;border:1px solid #dfe8e3;border-radius:16px;background:linear-gradient(135deg,#fff,#f2f8f5)}.settings-page-head h2{margin:4px 0 6px;font-size:24px}.settings-page-head p{margin:0;color:#74837b}.settings-kicker{color:#187057;font-size:11px;font-weight:800;letter-spacing:.14em}.settings-admin-badge{flex:0 0 auto;padding:7px 11px;border-radius:999px;color:#17634f;background:#e5f3ec;font-size:12px;font-weight:700}.settings-form{margin:0}.settings-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.8fr);gap:18px}.settings-card{min-width:0;padding:22px;border:1px solid #dfe7e2;border-radius:15px;background:#fff;box-shadow:0 8px 28px rgba(25,67,51,.05)}.settings-card>header{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding-bottom:17px;border-bottom:1px solid #e8eeea}.settings-card h3{margin:0;font-size:18px}.settings-card header p{margin:2px 0 0;color:#7b8982;font-size:12px}.settings-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;color:#fff;background:linear-gradient(135deg,#17634f,#2a846a);font-weight:800}.settings-card-ai .settings-icon{background:linear-gradient(135deg,#3d547a,#657da5)}.settings-toggle{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:17px 0;padding:13px 14px;border-radius:11px;background:#f3f7f5}.settings-toggle span,.settings-toggle b,.settings-toggle small{display:block}.settings-toggle small{margin-top:2px;color:#7a8981;font-weight:400}.settings-toggle input{position:absolute;width:1px;height:1px;opacity:0}.settings-toggle i{position:relative;flex:0 0 46px;width:46px;height:26px;border-radius:99px;background:#cbd5cf;transition:.2s}.settings-toggle i:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 5px #23362d33;transition:.2s}.settings-toggle input:checked+i{background:#1c745b}.settings-toggle input:checked+i:after{transform:translateX(20px)}.settings-toggle input:focus-visible+i{outline:3px solid #227a6233}.settings-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.settings-fields label{min-width:0;margin-top:13px}.settings-fields label>small{display:block;margin-top:5px;color:#86928c;font-size:11px;font-weight:400}.settings-span-2{grid-column:1/-1}.settings-fields-single{grid-template-columns:1fr}.settings-security{margin-top:20px;padding:14px;border:1px solid #dce7e1;border-radius:10px;background:#f7faf8}.settings-security b{color:#355348}.settings-security p{margin:4px 0 0;color:#78877f;font-size:12px}.settings-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px;padding:17px 20px;border:1px solid #dfe7e2;border-radius:13px;background:#fff}.settings-actions b,.settings-actions small{display:block}.settings-actions small{margin-top:2px;color:#7b8982}.settings-actions button{width:auto;min-width:160px;margin:0}@media(max-width:950px){.settings-grid{grid-template-columns:1fr}}@media(max-width:620px){.settings-page-head,.settings-actions{align-items:stretch;flex-direction:column}.settings-grid{display:block}.settings-card{margin-bottom:14px;padding:16px}.settings-card>header{grid-template-columns:40px 1fr}.settings-card>header>.tag{grid-column:2}.settings-fields{grid-template-columns:1fr}.settings-span-2{grid-column:auto}.settings-actions button{width:100%}}
.packaging-create-form{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-template-areas:"name name spec spec" "type price image image" "remark remark remark remark" ". . . save"!important;gap:10px 12px!important}.packaging-create-form label{margin:0}.packaging-create-form textarea[name="remark"]{height:46px;min-height:46px;resize:vertical}.packaging-create-form>button{justify-self:end;width:auto;min-width:112px;margin-top:2px}@media(max-width:700px){.packaging-create-form{grid-template-columns:1fr!important;grid-template-areas:"name" "spec" "type" "price" "image" "remark" "save"!important}.packaging-create-form>button{justify-self:stretch;width:100%}}
.media-device-form{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px 16px}.media-device-form label{margin:0}.media-device-form>button{grid-column:2;justify-self:end;width:auto;min-width:112px;margin-top:0}.media-device-children{margin-top:14px}@media(max-width:620px){.media-device-form{grid-template-columns:1fr!important}.media-device-form>button{grid-column:1}}
.media-sim-form{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px 16px}.media-sim-form label{margin:0}.media-sim-form>button{grid-column:2;justify-self:end;width:auto;min-width:112px;margin-top:0}@media(max-width:620px){.media-sim-form{grid-template-columns:1fr!important}.media-sim-form>button{grid-column:1}}
.media-sim-children{margin-top:14px}
.media-identity-children{margin-top:14px}
.employee-type-tabs{margin:0 0 12px}.employee-type-tag.type-permanent{color:#17634f;background:#e7f5ee}.employee-type-tag.type-temporary{color:#9a6418;background:#fff3d8}.employee-type-tag.type-piecework{color:#4b55a5;background:#eceeff}
.customer-address-parser{display:grid;gap:10px;margin:0 0 4px;padding:14px 16px;border:1px solid #cfe1d7;border-radius:11px;background:#f3f8f5}.customer-address-parser>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.customer-address-parser small{color:#78877f;font-size:12px}.customer-address-parser textarea{min-height:82px;margin:0;resize:vertical;background:#fff}.customer-parser-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.customer-parser-actions button{width:auto;min-width:120px;margin:0;padding:9px 14px}.customer-parser-actions span{font-size:12px}.customer-parser-actions .is-success{color:#167253}.customer-parser-actions .is-warn{color:#996515}.customer-parser-actions .is-error{color:#a23b34}@media(max-width:560px){.customer-address-parser>div:first-child,.customer-parser-actions{align-items:stretch;flex-direction:column}.customer-parser-actions button{width:100%}}
.sales-address-parser{grid-column:1/-1;margin-bottom:8px}.sales-address-parser textarea{width:100%;box-sizing:border-box}.sales-address-parser .customer-parser-actions button{min-width:150px}
.sales-address-parser{gap:6px;padding:10px 12px;margin-bottom:2px}.sales-address-parser>.sales-address-parser-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.sales-address-parser-head>div{display:flex;align-items:baseline;min-width:0;gap:10px}.sales-address-parser-head small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sales-address-parser-head>button{flex:0 0 auto;width:auto;min-width:150px;margin:0;padding:8px 14px}.sales-address-parser textarea{height:54px;min-height:54px;resize:vertical}.sales-address-parser .customer-parser-actions{min-height:0}.sales-address-parser .customer-parser-actions:has(span:empty){display:none}@media(max-width:560px){.sales-address-parser>.sales-address-parser-head{flex-direction:row;align-items:center}.sales-address-parser-head>div{display:block}.sales-address-parser-head small{display:none}.sales-address-parser-head>button{width:auto;min-width:0;padding:8px 10px}.sales-address-parser textarea{height:58px;min-height:58px}}
.sales-order-create-grid .sales-order-address input,.sales-order-create-grid .sales-order-remark input{box-sizing:border-box;width:100%;height:44px;min-height:44px;margin:0}.sales-order-sticky-actions{z-index:50}.sales-items-layout .relation-search-combobox{z-index:1!important}.sales-items-layout .sales-extra-row td{background:#fffaf0}.sales-items-layout .sales-extra-row .sales-item-name{font-weight:700}.sales-items-layout .sales-extra-row .sales-unit{text-align:center}.dropdown-portal-menu{z-index:2147483000!important}
.procurement-expense-draft-row,.sales-income-draft-row{cursor:pointer}
#supply-sales-form label:has([name="payment_status"]){display:none!important}
.sales-order-create-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;align-items:end;gap:12px 14px!important}.sales-order-create-grid>label{min-width:0;margin:0}.sales-order-create-grid .sales-order-customer{grid-column:span 2}.sales-order-create-grid .sales-order-address,.sales-order-create-grid .sales-order-remark{grid-column:span 2}.sales-order-create-grid .sales-order-address input,.sales-order-create-grid .sales-order-remark textarea{height:44px;min-height:44px}.sales-order-create-grid .sales-order-remark textarea{resize:vertical}.sales-order-items-title{margin:9px 0 5px!important;font-size:16px}.sales-items-layout{width:100%!important;min-width:0!important;table-layout:fixed!important}.sales-items-layout .sales-product-col{width:22%}.sales-items-layout .sales-price-col{width:9%}.sales-items-layout .sales-quantity-col{width:7%}.sales-items-layout .sales-unit-col{width:6%}.sales-items-layout .sales-total-col{width:11%}.sales-items-layout .sales-remark-col{width:33%}.sales-items-layout .sales-remove-col{width:12%}.sales-items-layout th,.sales-items-layout td{box-sizing:border-box;min-width:0}.sales-items-layout input,.sales-items-layout select,.sales-items-layout .relation-search-combobox,.sales-items-layout .relation-search-display{box-sizing:border-box;width:100%!important;min-width:0!important;margin:0!important}.sales-items-layout .sales-line-total{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sales-items-layout .remove-sales-item{width:100%!important;min-width:0!important;padding-right:2px!important;padding-left:2px!important}.sales-items-layout .sales-item-empty-row td{background:#fbfdfc}.sales-order-sticky-actions{position:sticky;z-index:8;bottom:-20px;display:flex;align-items:center;justify-content:flex-end;gap:12px;margin:6px -20px -20px;padding:10px 20px;border-top:1px solid var(--line);background:rgba(255,255,255,.96);box-shadow:0 -7px 18px rgba(32,62,49,.08);backdrop-filter:blur(7px)}.sales-order-sticky-actions>span{margin-right:auto;color:var(--muted);font-size:12px}.sales-order-sticky-actions button{width:auto;min-width:112px;margin:0}.sales-order-sticky-actions #add-sales-item[hidden]{display:none!important}@media(max-width:900px){.sales-order-create-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.sales-order-create-grid .sales-order-customer{grid-column:span 2}.sales-order-create-grid .sales-order-address,.sales-order-create-grid .sales-order-remark{grid-column:span 1}}@media(max-width:620px){.sales-order-create-grid{grid-template-columns:1fr!important}.sales-order-create-grid .sales-order-customer,.sales-order-create-grid .sales-order-address,.sales-order-create-grid .sales-order-remark{grid-column:1}.sales-order-sticky-actions{bottom:-12px;margin:6px -12px -12px;padding:9px 12px}.sales-order-sticky-actions>span{display:none}.sales-items-layout .sales-product-col{width:21%!important}.sales-items-layout .sales-price-col{width:10%!important}.sales-items-layout .sales-quantity-col{width:9%!important}.sales-items-layout .sales-unit-col{width:8%!important}.sales-items-layout .sales-total-col{width:12%!important}.sales-items-layout .sales-remark-col{width:28%!important}.sales-items-layout .sales-remove-col{width:12%!important}}

/* v0.15.869: sales orders explicitly select their pricing source. */
.sales-order-create-grid .sales-order-price-list{min-width:0}.sales-order-create-grid .sales-order-price-list select:disabled{color:#65756d;background:#f2f5f3}@media(min-width:901px){.sales-order-create-grid .sales-order-customer{grid-column:span 1}}@media(max-width:900px) and (min-width:621px){.sales-order-create-grid .sales-order-customer,.sales-order-create-grid .sales-order-price-list{grid-column:span 1}}@media(max-width:620px){.sales-order-create-grid .sales-order-price-list{grid-column:1}}
.sales-order-actions-cell{overflow:visible!important}.sales-order-row-actions{display:flex;align-items:center;justify-content:flex-start;gap:10px;min-width:max-content;white-space:nowrap}.sales-order-row-actions>.button,.sales-order-row-actions>button,.sales-ship-button-wrap>.sales-ship-button{display:inline-flex!important;align-items:center;justify-content:center;width:auto!important;min-width:78px!important;margin:0!important;padding:8px 12px!important;opacity:1!important;visibility:visible!important;font-size:12px!important;line-height:1.2!important;white-space:nowrap!important}.sales-ship-button-wrap{display:inline-flex;position:relative}.sales-ship-button-wrap>.sales-ship-button{min-width:112px!important;color:#315044!important;background:#e7efeb!important;border:1px solid #c8d8d0!important}.sales-ship-button-wrap>.sales-ship-button:hover{color:#fff!important;background:#26745d!important;border-color:#26745d!important}.sales-shipment-copy-panel{position:fixed;z-index:100500;display:grid;width:max-content;min-width:226px;max-width:min(340px,calc(100vw - 16px));padding:6px;border:1px solid #d8e4dd;border-radius:10px;background:#fff;box-shadow:0 12px 32px rgba(24,57,45,.22)}.sales-shipment-copy-panel[hidden]{display:none!important}.sales-shipment-copy-number{display:block!important;width:100%!important;margin:0!important;padding:9px 11px!important;border-radius:7px!important;color:#235445!important;background:#fff!important;font-size:12px!important;line-height:1.4!important;text-align:left!important;white-space:nowrap}.sales-shipment-copy-number:hover,.sales-shipment-copy-number:focus{background:#edf7f2!important;color:#126047!important}.sales-shipment-form{display:grid;gap:12px}.sales-shipment-packages{display:grid;gap:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#f7faf8}.sales-shipment-package-row{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(240px,1.4fr) 36px;gap:10px;align-items:end;padding:10px 12px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}.sales-shipment-package-row:last-child{border-bottom:0}.sales-shipment-package-row label{margin:0}.sales-remove-package{width:36px;height:40px;margin:0;padding:0;font-size:20px}.sales-add-package{width:auto;justify-self:start}.sales-save-packages{width:auto;min-width:140px;justify-self:end}@media(max-width:560px){.sales-order-row-actions{flex-wrap:wrap;gap:7px}.sales-order-row-actions>.button,.sales-order-row-actions>button,.sales-ship-button-wrap>.sales-ship-button{min-width:100px!important}.sales-shipment-package-row{grid-template-columns:1fr 34px}.sales-remove-package,.sales-add-package,.sales-save-packages{width:100%}}

/* v0.15.871: compact shipment entry. */
.sales-shipment-dialog{width:min(780px,calc(100vw - 28px))!important;max-width:780px!important}.sales-shipment-dialog .oa-modal-body{padding:14px!important}.sales-shipment-dialog .sales-shipment-date-row{display:grid;grid-template-columns:minmax(180px,260px);gap:10px}.sales-shipment-dialog .sales-shipment-date-row label{margin:0}.sales-shipment-dialog .sales-shipment-package-row{grid-template-columns:minmax(130px,.72fr) minmax(220px,1.28fr) 34px;padding:9px}.sales-shipment-dialog .sales-remove-package{width:34px!important;height:40px!important}.sales-shipment-dialog .sales-shipment-products{margin-top:4px;padding-top:14px;border-top:1px solid var(--line)}.sales-shipment-dialog .sales-shipment-products h3{margin:0 0 10px;font-size:15px}.sales-shipment-dialog .sales-shipment-form-actions{display:flex;justify-content:flex-end;gap:10px}.sales-shipment-dialog .sales-shipment-form-actions button{width:auto;margin:0}.sales-shipment-dialog .sales-copy-shipment{margin-right:auto}@media(max-width:560px){.sales-shipment-dialog .sales-shipment-date-row{grid-template-columns:1fr}.sales-shipment-dialog .sales-shipment-package-row{grid-template-columns:1fr 34px}.sales-shipment-dialog .sales-shipment-package-row label{grid-column:1/-1}.sales-shipment-dialog .sales-remove-package{grid-column:2;justify-self:end}.sales-shipment-dialog .sales-add-package,.sales-shipment-dialog .sales-save-packages{width:auto!important}.sales-shipment-dialog .sales-shipment-form-actions{flex-wrap:wrap}.sales-shipment-dialog .sales-shipment-form-actions button{flex:1 1 auto}.sales-shipment-dialog .sales-copy-shipment{margin-right:0}}

/* v0.15.874: keep the live order total beside the save action. */
.sales-order-sticky-actions .sales-order-sticky-total{display:flex!important;align-items:baseline;gap:5px;margin-right:auto;color:#334b40;font-size:14px}.sales-order-sticky-actions .sales-order-sticky-total b{color:#176c50;font-size:17px}.sales-order-sticky-actions .sales-order-sticky-total strong{font-size:20px}@media(max-width:620px){.sales-order-sticky-actions .sales-order-sticky-total{display:flex!important;font-size:13px}.sales-order-sticky-actions .sales-order-sticky-total b{font-size:15px}.sales-order-sticky-actions .sales-order-sticky-total strong{font-size:17px}}
.sales-order-sticky-total small{margin-left:7px;color:#849189;font-size:12px;text-decoration:line-through}.sales-order-discount-field{display:flex!important;flex:0 0 auto!important;align-items:center!important;gap:7px!important;width:auto!important;margin:0!important;color:#52635a;font-size:13px}.sales-order-discount-input{display:flex;align-items:center;width:108px;height:40px;overflow:hidden;border:1px solid #cbd8d1;border-radius:8px;background:#fff}.sales-order-discount-input:focus-within{border-color:#1d785c;box-shadow:0 0 0 2px rgba(29,120,92,.1)}.sales-order-discount-input input{width:76px!important;height:38px!important;min-height:38px!important;margin:0!important;padding:0 4px 0 10px!important;border:0!important;border-radius:0!important;box-shadow:none!important;text-align:right}.sales-order-discount-input i{padding-right:10px;color:#5b6b63;font-style:normal}.sales-order-discount-input input::-webkit-inner-spin-button,.sales-order-discount-input input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.sales-order-discount-input input[type=number]{-moz-appearance:textfield}@media(max-width:620px){.sales-order-sticky-actions{flex-wrap:wrap}.sales-order-sticky-total{width:100%}.sales-order-discount-field{margin-left:auto!important}.sales-order-discount-input{width:96px}.sales-order-discount-input input{width:65px!important}}

/* v0.15.875: reserve room for the review-lock icon in receivable receipts. */
html body .workspace table.receivable-receipts-table>tbody>tr>td:first-child{box-sizing:border-box!important;padding-left:42px!important;white-space:nowrap!important}
.sales-order-list-table{width:100%!important;table-layout:fixed!important}.sales-order-list-table .sales-customer-column{width:11%!important}.sales-order-list-table .sales-actions-column,.sales-order-list-table .sales-order-actions-cell{width:210px!important;min-width:210px!important;max-width:210px!important}.sales-order-list-table .sales-order-actions-cell{padding-right:10px!important}.sales-order-row-actions>.sales-ship-button.is-copy-success{color:#fff!important;background:#26745d!important;border-color:#26745d!important}@media(max-width:760px){.sales-order-list-table .sales-actions-column,.sales-order-list-table .sales-order-actions-cell{width:184px!important;min-width:184px!important;max-width:184px!important}.sales-order-row-actions{gap:6px}.sales-order-row-actions>.button,.sales-order-row-actions>button{min-width:70px!important;padding:7px 8px!important}.sales-order-row-actions>.sales-ship-button{min-width:104px!important}}
.sales-order-list-table .sales-order-number-column{width:10%!important;white-space:nowrap!important}
.sales-order-list-table .sales-after-sale-column{width:8%!important;white-space:nowrap!important;text-align:center}
.sales-order-list-table .sales-amount-column{width:8%!important;white-space:nowrap!important}
.after-sale-followup-form label::before{display:none!important;content:none!important}
.crm-customer-form.customer-form-layout{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end}.customer-form-layout>label{min-width:0}.customer-form-layout .customer-row-paste,.customer-form-layout .customer-remark-field{grid-column:1/-1}.customer-form-layout .customer-type-field{grid-column:1/5}.customer-form-layout .customer-source-field{grid-column:5/9}.customer-form-layout .customer-wechat-account-field{grid-column:9/13}.customer-form-layout .customer-talent-field{grid-column:1/4}.customer-form-layout .customer-name-field,.customer-form-layout.customer-is-talent .customer-name-field{grid-column:4/7}.customer-form-layout .customer-contact-field,.customer-form-layout.customer-is-talent .customer-contact-field{grid-column:7/10}.customer-form-layout .customer-phone-field,.customer-form-layout.customer-is-talent .customer-phone-field{grid-column:10/13}.customer-form-layout .customer-company-field{grid-column:1/7}.customer-form-layout .customer-address-field{grid-column:7/13}.customer-form-layout .customer-save-button{grid-column:10/13;justify-self:end;width:auto;min-width:110px;margin-top:4px}.customer-form-layout .customer-remark-field textarea{min-height:42px;resize:vertical}@media(max-width:900px){.crm-customer-form.customer-form-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-form-layout .customer-type-field,.customer-form-layout .customer-source-field,.customer-form-layout .customer-wechat-account-field,.customer-form-layout .customer-talent-field,.customer-form-layout .customer-name-field,.customer-form-layout .customer-contact-field,.customer-form-layout .customer-phone-field,.customer-form-layout.customer-is-talent .customer-name-field,.customer-form-layout.customer-is-talent .customer-contact-field,.customer-form-layout.customer-is-talent .customer-phone-field{grid-column:auto}.customer-form-layout .customer-company-field{grid-column:1}.customer-form-layout .customer-address-field{grid-column:2}.customer-form-layout .customer-save-button{grid-column:2}}@media(max-width:600px){.crm-customer-form.customer-form-layout{grid-template-columns:1fr}.customer-form-layout .customer-row-paste,.customer-form-layout .customer-type-field,.customer-form-layout .customer-source-field,.customer-form-layout .customer-wechat-account-field,.customer-form-layout .customer-talent-field,.customer-form-layout .customer-name-field,.customer-form-layout .customer-contact-field,.customer-form-layout .customer-phone-field,.customer-form-layout .customer-company-field,.customer-form-layout .customer-address-field,.customer-form-layout .customer-remark-field,.customer-form-layout .customer-save-button{grid-column:1}.customer-form-layout .customer-save-button{width:100%}}
.petty-cash-create-form{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important;align-items:end}.petty-cash-create-form>label{margin:0}.petty-cash-create-form .petty-cash-remark{grid-column:1/-1}.petty-cash-create-form .petty-cash-remark textarea{min-height:42px;resize:vertical}.petty-cash-create-form .petty-cash-save{grid-column:2;justify-self:end;width:auto;min-width:110px}@media(max-width:620px){.petty-cash-create-form{grid-template-columns:1fr!important}.petty-cash-create-form .petty-cash-remark,.petty-cash-create-form .petty-cash-save{grid-column:1}.petty-cash-create-form .petty-cash-save{width:100%}}
.detail-child-add,.product-cost-add{flex:0 0 auto;width:auto!important;margin:0 0 0 auto!important;padding:8px 14px!important;border-radius:8px!important;background:#17634f!important;color:#fff!important;white-space:nowrap}.detail-child-add[hidden]{display:none!important}.detail-child-create-modal{width:min(980px,94vw)}.detail-child-create-modal .oa-modal-frame{height:min(680px,78vh)}.customer-followup-quick-form{display:grid;gap:12px}.customer-followup-quick-form label{display:grid;gap:6px}.customer-followup-quick-form input,.customer-followup-quick-form select,.customer-followup-quick-form textarea{margin:0}.customer-followup-first-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.customer-followup-first-row input,.customer-followup-first-row select{width:100%;height:44px;min-height:44px}.customer-followup-quick-form button{width:auto;margin-left:auto}@media(max-width:600px){.customer-followup-first-row{grid-template-columns:1fr}}.embedded-child-feedback{padding:9px 12px;border-radius:8px;background:#eef5ff;color:#24558a}.embedded-child-feedback.is-error{background:#fff0f0;color:#b42318}
.invoice-row-action{cursor:pointer}.invoice-row-action:hover td{background:#f0f7f3!important}.invoice-row-action td:last-child{color:#227a62;font-weight:600;white-space:nowrap}
.invoice-current-file{display:inline-block;margin-top:7px}.invoice-current-file[hidden]{display:none}.invoice-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px}.invoice-form-actions button{grid-column:auto!important;margin:0;width:auto!important}.invoice-delete-registration{margin-right:auto!important}
.invoice-upload-dialog[open]{overflow:visible!important}.invoice-upload-dialog>.oa-modal-head{position:relative;z-index:60;display:grid!important;grid-template-columns:minmax(0,1fr) auto 38px!important;align-items:center!important;gap:10px!important;overflow:visible;border-radius:16px 16px 0 0}.invoice-upload-dialog>.oa-modal-head>h2{grid-column:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invoice-upload-dialog>.oa-modal-head>.invoice-header-actions{grid-column:2;justify-self:end;flex:0 0 auto;min-width:max-content;margin:0!important;overflow:visible}.invoice-upload-dialog>.oa-modal-head>.oa-modal-close{grid-column:3;justify-self:end;flex:0 0 38px}.invoice-header-actions[hidden]{display:none!important}.invoice-header-actions .detail-action-split{flex:0 0 auto;overflow:visible}.invoice-header-actions .detail-action-arrow{position:relative;font-size:0!important}.invoice-header-actions .detail-action-arrow::before{content:"";display:block;width:0;height:0;margin:auto;border-top:5px solid #fff;border-right:4px solid transparent;border-left:4px solid transparent}.invoice-header-actions .detail-action-menu{right:0!important;z-index:1000;overflow:visible}.invoice-edit-cancel{width:auto!important;min-width:66px!important;margin:0 7px 0 0!important;padding:7px 12px!important;color:#53675d!important;background:#e8eeea!important}.invoice-upload-form :is(input,select,textarea):disabled{color:#2e4138;cursor:default;background:#f4f7f5;opacity:1}@media(max-width:560px){.invoice-upload-dialog>.oa-modal-head{grid-template-columns:minmax(0,1fr) auto 38px!important;padding:14px 12px!important;gap:6px!important}.invoice-upload-dialog>.oa-modal-head>h2{font-size:17px}.invoice-header-actions .detail-action-edit{min-width:70px!important;padding-right:12px!important;padding-left:12px!important}.invoice-edit-cancel{min-width:56px!important;padding-right:9px!important;padding-left:9px!important}}
.invoice-row-buttons{display:flex;align-items:center;gap:7px;white-space:nowrap}.invoice-row-buttons button{width:auto!important;min-width:58px!important;margin:0!important;padding:7px 10px!important;font-size:12px!important}.invoice-row-buttons .invoice-row-edit{color:#fff;background:#17634f}.invoice-row-buttons .invoice-row-delete{color:#fff!important;background:#9f4039!important}
.expense-text-fields-row{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.expense-text-fields-row label{margin:0;min-width:0}.expense-text-fields-row input,.expense-text-fields-row textarea{box-sizing:border-box;width:100%;height:44px;min-height:44px;margin-top:6px}.expense-text-fields-row textarea{resize:vertical}@media(max-width:760px){.expense-text-fields-row{grid-template-columns:1fr}}
.after-sale-followup-form > .after-sale-followup-status {
    grid-column: 2 / 4 !important;
}

/* v0.16.318: keep after-sale child dialogs compact and bind follow-up rows independently. */
.oa-modal.after-sale-item-dialog{width:min(480px,92vw)!important;max-width:480px!important}
.oa-modal.after-sale-followup-detail-dialog{width:min(480px,92vw)!important;max-width:480px!important}
.after-sale-item-dialog .oa-modal-body{padding:14px!important}
.after-sale-followup-detail-dialog .oa-modal-body{padding:14px!important}
.after-sale-item-dialog .oa-modal-frame{height:min(560px,72vh)!important}
.after-sale-followup-detail-dialog .oa-modal-frame{height:min(600px,74vh)!important}
.after-sale-item-detail-page .after-sale-item-detail-form.is-new .after-sale-item-form-actions{display:grid!important;grid-template-columns:minmax(0,1fr)!important}
.after-sale-item-detail-page .after-sale-item-detail-form.is-new .after-sale-item-form-actions>button{grid-column:1!important;width:100%!important;margin:0!important}
.after-sale-item-detail-page .after-sale-item-detail-form:not(.is-new) .after-sale-item-form-actions{display:none!important}
.after-sale-followup-feedback{grid-column:1!important;padding:9px 11px;border-radius:8px;color:#24558a;background:#eef5ff}
.after-sale-followup-feedback.is-success{color:#17634f;background:#e6f5ee}
.after-sale-followup-feedback.is-error{color:#a33;background:#fff0f0}
.after-sale-status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:64px;padding:5px 10px;border:1px solid transparent;border-radius:999px;font-size:12px;font-weight:800;line-height:1.2;white-space:nowrap}
.after-sale-status-processing{color:#9a5b00!important;border-color:#efd08b!important;background:#fff4d6!important}
.after-sale-status-refund_pending{color:#9b2c56!important;border-color:#efb3c9!important;background:#fff0f5!important}
.after-sale-status-completed{color:#17634f!important;border-color:#b9dece!important;background:#e6f5ee!important}
.oa-modal.after-sale-followup-dialog{width:min(480px,92vw)!important}
.after-sale-followup-dialog .oa-modal-body{padding:18px!important}
.after-sale-followup-dialog .after-sale-followup-form{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:14px!important;padding:18px!important}
.after-sale-followup-dialog .after-sale-followup-form>label,
.after-sale-followup-dialog .after-sale-followup-form>button{grid-column:1!important;grid-row:auto!important;width:100%!important;margin:0!important}
.after-sale-followup-dialog .after-sale-followup-form input,
.after-sale-followup-dialog .after-sale-followup-form select,
.after-sale-followup-dialog .after-sale-followup-form textarea{box-sizing:border-box;width:100%!important;margin-top:7px!important}
.after-sale-followup-panel .table-wrap{max-width:100%!important;overflow-x:hidden!important}
.after-sale-followup-table{width:100%!important;min-width:0!important;table-layout:fixed!important;white-space:normal!important}
.after-sale-followup-table .followup-date-col{width:112px!important}
.after-sale-followup-table .followup-status-col{width:82px!important}
.after-sale-followup-table .followup-user-col{width:88px!important}
.after-sale-followup-table th,.after-sale-followup-table td{min-width:0!important;padding-right:8px!important;padding-left:8px!important;overflow-wrap:anywhere}
.after-sale-followup-table td:nth-child(1),.after-sale-followup-table td:nth-child(2),.after-sale-followup-table td:nth-child(4){white-space:nowrap!important}
.after-sale-followup-row{cursor:pointer}
.after-sale-followup-row:hover td,.after-sale-followup-row:focus-visible td{background:#eef7f2!important}

@media (max-width: 620px) {
    .after-sale-followup-form > .after-sale-followup-status {
        grid-column: 1 !important;
    }
}

/* v0.16.013: keep attachment controls consistent and mutation-safe in detail views. */
.product-image-attachment-field.is-product-image-readonly .expense-create-upload-control {
    opacity: .62 !important;
    pointer-events: none !important;
}
.product-image-attachment-field.is-product-image-readonly .product-image-file-more,
.product-image-attachment-field.is-product-image-readonly .expense-file-actions {
    display: none !important;
}
.product-image-attachment-field.is-product-image-readonly .expense-file-name {
    pointer-events: auto !important;
    cursor: pointer !important;
}

/* Employee-event files use the same standalone three-dot menu as expense files. */
.employee-event-attachment-field .expense-selected-file-item {
    position: relative !important;
    overflow: visible !important;
}
.employee-event-attachment-field .expense-file-actions {
    position: absolute !important;
    z-index: 2147483600 !important;
    top: calc(100% + 5px) !important;
    right: 0 !important;
    display: none !important;
    min-width: 112px !important;
    padding: 6px !important;
    border: 1px solid #d9e4de !important;
    border-radius: 9px !important;
    background: #fff !important;
    box-shadow: 0 10px 28px rgba(28,62,49,.24) !important;
}
.employee-event-attachment-field .expense-selected-file-item.is-menu-open .expense-file-actions {
    display: flex !important;
    align-items: stretch !important;
    flex-direction: column !important;
    gap: 3px !important;
}
.employee-event-attachment-field .expense-file-actions button,
.employee-event-attachment-field .expense-file-actions a {
    justify-content: flex-start !important;
    width: 100% !important;
    height: 32px !important;
    margin: 0 !important;
    padding: 5px 9px !important;
    text-align: left !important;
}

/* Finance-file creation follows the expense attachment layout exactly. */
.finance-file-upload-field > .finance-file-upload-line,
.finance-file-upload-field > .expense-create-upload-line {
    display: flex !important;
    align-items: flex-start !important;
    flex-wrap: wrap !important;
    gap: 6px 10px !important;
    width: 100% !important;
    margin: 0 !important;
    overflow: visible !important;
}
.finance-file-upload-field .expense-create-upload-control {
    flex: 0 0 min(240px, 100%) !important;
    width: min(240px, 100%) !important;
}
.finance-file-upload-field > .finance-file-upload-line > .expense-selected-file-list,
.finance-file-upload-field > .expense-create-upload-line > .expense-selected-file-list {
    display: flex !important;
    flex: 1 1 280px !important;
    align-items: flex-start !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    min-width: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
}

/* 采购物品新增、编辑统一为三行紧凑布局 */
.packaging-create-form,
.generic-edit-grid.packaging-edit-layout {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    grid-template-areas:
        "name name spec company"
        "type price image image"
        "remark remark remark remark"
        ". . . save" !important;
    gap: 10px 12px !important;
}

.packaging-create-form .packaging-field-name,
.packaging-edit-layout .packaging-field-name {
    grid-area: name !important;
}

.packaging-create-form .packaging-field-spec,
.packaging-edit-layout .packaging-field-spec {
    grid-area: spec !important;
}

.packaging-create-form .packaging-field-company,
.packaging-edit-layout .packaging-field-company {
    grid-area: company !important;
    min-width: 0;
}

.packaging-create-form .packaging-field-type,
.packaging-edit-layout .packaging-field-type {
    grid-area: type !important;
}

.packaging-create-form .packaging-field-price,
.packaging-edit-layout .packaging-field-price {
    grid-area: price !important;
}

.packaging-create-form .packaging-image-field,
.packaging-edit-layout .packaging-image-field {
    grid-area: image !important;
    grid-column: 3 / -1 !important;
    grid-row: 2 !important;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    box-sizing: border-box;
}

.packaging-create-form .packaging-field-remark,
.packaging-edit-layout .packaging-field-remark {
    grid-area: remark !important;
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.packaging-image-field .field-caption {
    display: block;
    margin-bottom: 6px;
}

.packaging-image-control {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-width: 0;
    overflow: hidden;
}

.packaging-image-control input[type="file"] {
    width: 0 !important;
    max-width: 100%;
    min-width: 0;
    flex: 1 1 0;
    box-sizing: border-box;
}

.packaging-create-form .packaging-field-remark textarea,
.packaging-edit-layout .packaging-field-remark textarea {
    display: block;
    width: 100% !important;
    max-width: 100%;
    box-sizing: border-box;
}

.packaging-image-control .scan-upload-button {
    flex: 0 0 auto;
    width: auto !important;
    margin: 0 !important;
    white-space: nowrap;
}

.packaging-create-form > .packaging-save-button {
    grid-area: save !important;
    justify-self: end;
    width: auto;
    min-width: 112px;
    margin-top: 2px;
}

@media (max-width: 700px) {
    .packaging-create-form,
    .generic-edit-grid.packaging-edit-layout {
        grid-template-columns: 1fr !important;
        grid-template-areas:
            "name"
            "spec"
            "company"
            "type"
            "price"
            "image"
            "remark"
            "save" !important;
    }

    .packaging-create-form > .packaging-save-button {
        grid-column: 1 !important;
        justify-self: stretch;
        width: 100%;
    }

    .packaging-create-form .packaging-image-field,
    .packaging-edit-layout .packaging-image-field,
    .packaging-create-form .packaging-field-remark,
    .packaging-edit-layout .packaging-field-remark {
        grid-column: 1 !important;
        grid-row: auto !important;
    }
}

/* 产品、采购物品按所属公司快速切换。 */
.catalog-company-tabs {
    display: flex !important;
    align-items: center;
    gap: 7px;
    width: 100%;
    margin: 0 0 12px !important;
    padding: 2px 0 4px;
    overflow-x: auto;
    scrollbar-width: thin;
}
.catalog-company-tabs .detail-tab {
    flex: 0 0 auto;
    width: auto !important;
    min-width: 76px;
    margin: 0 !important;
    padding: 8px 13px !important;
    border: 1px solid #dce6e1 !important;
    border-radius: 999px !important;
    color: #52635a !important;
    background: #f5f8f6 !important;
    font-size: 12px;
    line-height: 1.2;
    white-space: nowrap;
}
.catalog-company-tabs .detail-tab.is-active {
    border-color: #24765d !important;
    color: #fff !important;
    background: #24765d !important;
    box-shadow: 0 3px 9px rgba(36,118,93,.18);
}
@media(max-width:600px){
    .catalog-company-tabs {
        margin-bottom: 8px !important;
        padding-bottom: 3px;
    }
    .catalog-company-tabs .detail-tab {
        min-width: 68px;
        padding: 7px 11px !important;
    }
}

.workspace .employee-consistent-list-table {
    width: 100% !important;
    min-width: 0 !important;
    table-layout: fixed !important;
}
.workspace .employee-consistent-list-table :is(th,td):nth-child(1) { width: 8% !important; }
.workspace .employee-consistent-list-table :is(th,td):nth-child(2) { width: 10% !important; }
.workspace .employee-consistent-list-table :is(th,td):nth-child(3) { width: 13% !important; }
.workspace .employee-consistent-list-table :is(th,td):nth-child(4) { width: 17% !important; }
.workspace .employee-consistent-list-table :is(th,td):nth-child(5) { width: 13% !important; }
.workspace .employee-consistent-list-table :is(th,td):nth-child(6) { width: 11% !important; }
.workspace .employee-consistent-list-table :is(th,td):nth-child(7) { width: 11% !important; }
.workspace .employee-consistent-list-table :is(th,td):nth-child(8) { width: 10% !important; }
.workspace .employee-consistent-list-table :is(th,td):nth-child(9) { width: 7% !important; }

/* Mobile list cards and compact employee cards. */
@media(max-width:900px){
  .workspace>main{padding:12px!important}
  .workspace>main>.panel,.workspace main>.page-grid>.panel{padding:12px!important;border-radius:12px}
  .workspace .section-head,.workspace .list-primary-actions{gap:8px}
  .table-wrap{overflow:visible!important;padding:0!important}
  .table-wrap .oa-mobile-card-table{display:block!important;width:100%!important;min-width:0!important;table-layout:auto!important;white-space:normal!important}
  .table-wrap .oa-mobile-card-table>colgroup{display:none!important}
  .table-wrap .oa-mobile-card-table>tbody{display:grid!important;width:100%!important;min-width:0!important;gap:10px}
  .table-wrap .oa-mobile-card-table>tbody>tr{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0 13px;
    width:100%!important;
    padding:10px 12px!important;
    box-sizing:border-box;
    border:1px solid #dfe7e2;
    border-radius:11px;
    background:#fff;
    box-shadow:0 2px 9px rgba(25,55,42,.05)
  }
  .table-wrap .oa-mobile-card-table>tbody>tr[hidden],
  .table-wrap .oa-mobile-card-table>tbody>tr[style*="display: none"],
  .table-wrap .oa-mobile-card-table>tbody>tr[style*="display:none"]{display:none!important}
  .table-wrap .oa-mobile-card-table>tbody>tr>td{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    gap:5px!important;
    align-items:center!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    padding:6px 0!important;
    box-sizing:border-box;
    overflow:visible!important;
    color:#2f4038;
    text-align:left!important;
    white-space:normal!important;
  }
  .table-wrap .oa-mobile-card-table>tbody>tr>td[hidden],
  .table-wrap .oa-mobile-card-table>tbody>tr>td[style*="display: none"],
  .table-wrap .oa-mobile-card-table>tbody>tr>td[style*="display:none"],
  .table-wrap .oa-mobile-card-table>tbody>tr>td.mobile-list-core-hidden,
  .table-wrap .oa-mobile-card-table>tbody>tr>td.mobile-card-hidden{display:none!important}
  .table-wrap .oa-mobile-card-table>tbody>tr>td:before{min-width:0;color:#7a8981;font-size:11px;line-height:1.35;white-space:nowrap}
  .table-wrap .oa-mobile-card-table>tbody>tr>td>*{min-width:0;max-width:100%}
  .table-wrap .oa-mobile-card-table>tbody>tr>td .tag{justify-self:start}
  .table-wrap .oa-mobile-card-table>tbody>tr>td.mobile-card-primary{
    grid-column:1/-1;
    order:-4;
    display:block!important;
    padding:1px 0 8px!important;
    border-bottom:1px solid #edf1ef!important;
    font-size:15px;
    font-weight:750;
    line-height:1.45;
  }
  .table-wrap .oa-mobile-card-table>tbody>tr>td.mobile-card-primary:before{display:none!important}
  .table-wrap .oa-mobile-card-table>tbody>tr>td.mobile-card-status{
    display:block!important;
    order:-2;
  }
  .table-wrap .oa-mobile-card-table>tbody>tr>td.mobile-card-status:before,
  .table-wrap .oa-mobile-card-table>tbody>tr>td.mobile-card-date:before{display:none!important}
  .table-wrap .oa-mobile-card-table>tbody>tr>td.mobile-card-date{
    display:block!important;
    grid-column:1/-1;
    order:-3;
    overflow:hidden!important;
    white-space:nowrap!important;
    text-overflow:ellipsis;
    color:#718078;
    font-size:12px;
    font-variant-numeric:tabular-nums;
  }
  .table-wrap .oa-mobile-card-table>tbody>tr>td.mobile-card-long,
  .table-wrap .oa-mobile-card-table>tbody>tr>td.mobile-card-action,
  .table-wrap .oa-mobile-card-table>tbody>tr>td[colspan]{
    grid-column:1/-1;
    grid-template-columns:64px minmax(0,1fr)!important;
  }
  .table-wrap .oa-mobile-card-table>tbody>tr>td.mobile-card-money{font-variant-numeric:tabular-nums}
  .table-wrap .oa-mobile-card-table>tbody>tr>td.mobile-card-nowrap{
    overflow:hidden!important;
    white-space:nowrap!important;
    text-overflow:ellipsis;
  }
  .table-wrap .oa-mobile-card-table>tbody>tr>td.mobile-card-nowrap>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .table-wrap .oa-mobile-card-table>tbody>tr>td.mobile-card-action{padding-top:8px!important;border-top:1px dashed #e4ebe7;border-bottom:0!important}
  .table-wrap .oa-mobile-card-table>tbody>tr>td .actions,
  .table-wrap .oa-mobile-card-table>tbody>tr>td form{justify-content:flex-start!important}
  .workspace .table-pagination{margin-top:11px}
  .workspace .oa-open-modal,.detail-tabs .detail-child-add,.detail-tabs .product-cost-add,.detail-tabs .work-task-tab-add{min-width:58px!important;padding-right:12px!important;padding-left:12px!important}
  .workspace .list-primary-actions{display:flex!important;align-items:center!important;flex-wrap:wrap!important}
  .workspace .list-primary-actions .media-device-list-search,
  .workspace .list-primary-actions input[type="search"]{flex:1 1 180px!important;width:auto!important;min-width:0!important}
  .workspace .list-primary-actions>.oa-open-modal{flex:0 0 auto!important;margin-left:auto!important}
  .workspace .table-pagination{display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;flex-wrap:wrap!important}
  .workspace .table-pagination button,.workspace .table-pagination select{width:auto!important;margin:0!important}

  .table-wrap .employee-mobile-card-table>tbody>tr{
    position:relative;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0 12px;
    padding:11px 12px!important;
  }
  .table-wrap .employee-mobile-card-table>tbody>tr>td{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    gap:5px!important;
    width:auto!important;
    padding:5px 0!important;
    border:0!important;
    font-size:12px;
    line-height:1.45;
  }
  .table-wrap .employee-mobile-card-table>tbody>tr>td[data-label="姓名"]{
    grid-column:1/-1;
    order:-3;
    padding:0 76px 8px 0!important;
    border-bottom:1px solid #edf1ef!important;
    font-size:16px;
  }
  .table-wrap .employee-mobile-card-table>tbody>tr>td[data-label="姓名"]:before{display:none}
  .table-wrap .employee-mobile-card-table>tbody>tr>td[data-label="编号"]{order:-2}
  .table-wrap .employee-mobile-card-table>tbody>tr>td[data-label="所属公司"]{order:-1}
  .table-wrap .employee-mobile-card-table>tbody>tr>td[data-label="部门 / 岗位"]{grid-column:1/-1}
  .table-wrap .employee-mobile-card-table>tbody>tr>td[data-label="状态"]{
    position:absolute;
    top:10px;
    right:11px;
    display:block!important;
    width:auto!important;
    padding:0!important;
  }
  .table-wrap .employee-mobile-card-table>tbody>tr>td[data-label="状态"]:before{display:none}
}

@media(max-width:420px){
  .workspace>main{padding:9px!important}
  .table-wrap .oa-mobile-card-table>tbody>tr{gap:0 9px}
  .table-wrap .oa-mobile-card-table>tbody>tr>td{grid-template-columns:auto minmax(0,1fr)!important}
  .table-wrap .oa-mobile-card-table>tbody>tr>td.mobile-card-long,
  .table-wrap .oa-mobile-card-table>tbody>tr>td.mobile-card-action{grid-template-columns:58px minmax(0,1fr)!important}
  .table-wrap .employee-mobile-card-table>tbody>tr{gap:0 8px}
  .table-wrap .employee-mobile-card-table>tbody>tr>td{grid-template-columns:auto minmax(0,1fr)!important}
}

@media(max-width:560px){
  .table-wrap .oa-mobile-card-table>tbody>tr{grid-template-columns:minmax(0,1fr)!important;gap:0!important}
  .table-wrap .oa-mobile-card-table>tbody>tr>td{
    grid-column:1/-1!important;
    grid-template-columns:72px minmax(0,1fr)!important;
    width:100%!important;
  }
  .table-wrap .oa-mobile-card-table>tbody>tr>td.mobile-card-primary{display:block!important}
  .table-wrap .oa-mobile-card-table>tbody>tr>td.mobile-card-long,
  .table-wrap .oa-mobile-card-table>tbody>tr>td.mobile-card-action,
  .table-wrap .oa-mobile-card-table>tbody>tr>td.mobile-card-date{grid-template-columns:72px minmax(0,1fr)!important}
  .table-wrap .employee-mobile-card-table>tbody>tr{grid-template-columns:minmax(0,1fr)!important;gap:0!important}
  .table-wrap .employee-mobile-card-table>tbody>tr>td{grid-column:1/-1!important;grid-template-columns:72px minmax(0,1fr)!important;width:100%!important}
}

/* 图片上传与列表视图切换使用紧凑图标按钮 */
.icon-only-scan-upload {
    display: inline-grid !important;
    place-items: center;
    flex: 0 0 38px !important;
    width: 38px !important;
    height: 38px;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    color: transparent !important;
    font-size: 0 !important;
}

.icon-only-scan-upload::before {
    content: "";
    width: 21px;
    height: 21px;
    background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23246b55' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='6' height='6' rx='1'/%3E%3Crect x='15' y='3' width='6' height='6' rx='1'/%3E%3Crect x='3' y='15' width='6' height='6' rx='1'/%3E%3Cpath d='M15 15h2v2h-2zM19 15h2v3M15 19v2h3M20 20h1v1'/%3E%3C/svg%3E");
}

/* 文件与图片上传：二维码入口固定在上传组件内部右侧 */
.upload-input-shell {
    position: relative;
    display: block;
    width: 100%;
    min-width: 0;
}

.upload-input-shell input[type="file"] {
    display: block;
    width: 100% !important;
    min-width: 0;
    padding-right: 46px !important;
    box-sizing: border-box;
}

.upload-input-shell > .scan-upload-button {
    position: absolute !important;
    z-index: 2;
    top: 50% !important;
    right: 4px !important;
    width: 34px !important;
    height: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: translateY(-50%) !important;
}

.document-file-row {
    display: block !important;
    width: 100%;
    max-width: 100% !important;
}

.record-stable-image-row,
.product-edit-image-row {
    grid-template-columns: minmax(0, 1fr) auto !important;
}

.record-stable-image-row > .upload-input-shell,
.product-edit-image-row > .upload-input-shell {
    grid-column: 1;
    grid-row: 1;
}

.record-stable-image-preview-button,
.product-edit-image-preview {
    grid-column: 2 !important;
    grid-row: 1;
}

.packaging-image-control > .upload-input-shell {
    flex: 1 1 0;
}

.list-primary-actions > .compact-view-toolbar {
    display: inline-flex !important;
    align-items: center;
    flex: 0 0 auto;
    width: auto !important;
    margin: 0 !important;
    padding: 3px !important;
    border-radius: 9px;
    background: #eef3f0;
}

.list-primary-actions > .compact-view-toolbar > div {
    display: flex;
    padding: 0 !important;
    background: transparent !important;
}

.compact-view-toolbar [data-mode] {
    display: inline-grid !important;
    place-items: center;
    width: 36px !important;
    height: 34px;
    margin: 0 !important;
    padding: 0 !important;
}

.compact-view-toolbar [data-mode] svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* 所有数据列表统一分页 */
.table-pagination {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    width: 100%;
    margin: 10px 0 2px;
    color: #6f8077;
    font-size: 12px;
}

.table-pagination-total {
    margin-right: auto;
}

.table-pagination-size,
.table-pagination-pages {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.table-pagination select {
    width: auto;
    min-width: 68px;
    height: 34px;
    margin: 0;
    padding: 5px 26px 5px 9px;
    background-color: #fff;
}

.table-pagination button {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    margin: 0;
    padding: 0;
    border: 1px solid #d8e3dd;
    color: #246b55;
    background: #fff;
    font-size: 21px;
    line-height: 1;
}

.table-pagination button:hover:not(:disabled) {
    color: #fff;
    background: #24765d;
}

.table-pagination button:disabled {
    color: #a9b5af;
    background: #f2f5f3;
    cursor: not-allowed;
}

.pagination-current {
    min-width: 54px;
    color: #344c41;
    text-align: center;
    font-weight: 700;
}

@media (max-width: 600px) {
    .table-pagination {
        flex-wrap: wrap;
        justify-content: space-between;
        gap: 8px;
    }

    .table-pagination-total {
        flex-basis: 100%;
    }
}

/* 售后详情原位编辑 */
.after-sale-inline-editing {
    border-color: var(--line) !important;
    background: #fff !important;
    box-shadow: none;
}

.after-sale-inline-edit-form {
    display: grid;
    gap: 14px;
    width: 100%;
    margin: 0;
}

.after-sale-inline-fields {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px 14px;
}

.after-sale-inline-fields label {
    min-width: 0;
    margin: 0;
}

.after-sale-inline-fields input,
.after-sale-inline-fields select,
.after-sale-inline-fields textarea {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.after-sale-inline-fields textarea {
    min-height: 56px;
}

.after-sale-issue-field {
    grid-column: 1 / -1;
}

.after-sale-inline-actions {
    display: flex;
    justify-content: flex-end;
}

.after-sale-inline-actions button {
    width: auto;
    min-width: 112px;
    margin: 0;
}

.after-sale-inline-cancel {
    width: auto !important;
    min-width: 64px !important;
    margin: 0 7px 0 0 !important;
    color: #466057;
    background: #e8efeb;
}

.after-sale-edit-button.is-cancel {
    color: #466057;
    background: #e8efeb;
}

.after-sale-inline-editing .profile-grid {
    grid-template-columns: repeat(3, 1fr);
}

.after-sale-inline-editing .profile-grid > div {
    min-width: 0;
}

.after-sale-inline-editing .profile-grid > div.is-field-editing {
    box-shadow: none !important;
}

.after-sale-inline-editing .profile-grid input,
.after-sale-inline-editing .profile-grid select,
.after-sale-inline-editing .profile-grid textarea {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 38px;
    margin: 0;
    padding: 8px 9px;
    box-sizing: border-box;
}

.after-sale-inline-editing .profile-grid textarea {
    resize: vertical;
}

.after-sale-inline-editing .profile-grid .relation-search-combobox {
    width: 100% !important;
    min-width: 0 !important;
    height: 38px !important;
    min-height: 38px !important;
    margin: 0 !important;
}

.after-sale-inline-editing .profile-grid .relation-search-input {
    width: 100% !important;
    height: 38px !important;
    min-height: 38px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

.after-sale-inline-native-submit {
    display: none !important;
}

@media (max-width: 760px) {
    .after-sale-inline-fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .after-sale-inline-editing .profile-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* v0.15.881: detail pages rendered inside the shared iframe must own their vertical scroll. */
html:has(.sales-item-detail-page),
body:has(.sales-item-detail-page) {
    height: auto !important;
    min-height: 100% !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
}
body:has(.sales-item-detail-page) .sales-item-detail-page {
    min-height: 100% !important;
    padding-bottom: 32px !important;
}

/* v0.15.883: the sales-order detail owns the full iframe scroll; child tables must never be clipped. */
html:has(.sales-order-detail-main),
body:has(.sales-order-detail-main) {
    height: auto !important;
    min-height: 100% !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
}
body:has(.sales-order-detail-main) .generic-detail-page {
    height: auto !important;
    min-height: max-content !important;
    padding-bottom: 38px !important;
    overflow: visible !important;
}
body:has(.sales-order-detail-main) .sales-finance-panels,
body:has(.sales-order-detail-main) .sales-finance-panels .detail-tab-panel,
body:has(.sales-order-detail-main) .sales-finance-panels .table-wrap {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: visible !important;
}

/* Employee detail keeps the edit controls in place to prevent layout jumps. */
.employee-profile .employee-stable-detail-form {
  display: block !important;
  width: 100%;
  margin: 0;
}
.employee-stable-detail-form .employee-form {
  grid-template-columns: repeat(4,minmax(0,1fr)) !important;
  gap: 8px 10px !important;
}
.employee-edit-six-row {
  grid-template-columns: repeat(4,minmax(0,1fr)) !important;
  grid-template-areas:
    "employee-name employee-type employee-number employee-gender"
    "employee-company employee-ethnicity employee-education employee-native"
    "employee-phone employee-id-card employee-address employee-address"
    "employee-department employee-position employee-emergency employee-emergency-phone"
    "employee-bank employee-bank employee-hire employee-card"
    "employee-remark employee-remark employee-salary employee-ratio";
}
.employee-edit-six-row .employee-field-name { grid-area: employee-name; }
.employee-edit-six-row .employee-field-type { grid-area: employee-type; }
.employee-edit-six-row .employee-field-number { grid-area: employee-number; }
.employee-edit-six-row .employee-field-gender { grid-area: employee-gender; }
.employee-edit-six-row .organization-company-field { grid-area: employee-company; display:flex; min-width:0; flex-direction:column; align-self:stretch; }
.employee-edit-six-row .organization-company-field > .relation-search-combobox { width:100%; min-width:0; margin-top:0 !important; }
.employee-edit-six-row .organization-company-field .relation-search-input { width:100%; min-width:0; min-height:42px; box-sizing:border-box; }
.employee-edit-six-row .employee-field-ethnicity { grid-area: employee-ethnicity; }
.employee-edit-six-row .employee-field-education { grid-area: employee-education; }
.employee-edit-six-row .employee-field-native-place { grid-area: employee-native; }
.employee-edit-six-row .employee-field-phone { grid-area: employee-phone; }
.employee-edit-six-row .employee-field-id-card { grid-area: employee-id-card; }
.employee-edit-six-row .employee-field-home-address { grid-area: employee-address; }
.employee-edit-six-row .employee-field-department { grid-area: employee-department; }
.employee-edit-six-row .employee-field-position { grid-area: employee-position; }
.employee-edit-six-row .employee-field-emergency-contact { grid-area: employee-emergency; }
.employee-edit-six-row .employee-field-emergency-phone { grid-area: employee-emergency-phone; }
.employee-edit-six-row .employee-field-salary { grid-area: employee-salary; }
.employee-edit-six-row .employee-field-probation-ratio { grid-area: employee-ratio; }
.employee-edit-six-row .employee-field-bank { grid-area: employee-bank; }
.employee-edit-six-row .employee-field-hire-date { grid-area: employee-hire; }
.employee-edit-six-row .employee-field-bank-card { grid-area: employee-card; }
.employee-edit-six-row .employee-field-remark { grid-area: employee-remark; }
.employee-stable-detail-form label,
.employee-create-six-row-form .employee-edit-six-row label {
  min-width: 0;
  margin: 0;
  color: var(--muted);
  font-size: 11px;
}
.employee-stable-detail-form input,
.employee-stable-detail-form select,
.employee-stable-detail-form textarea,
.employee-create-six-row-form .employee-edit-six-row input,
.employee-create-six-row-form .employee-edit-six-row select,
.employee-create-six-row-form .employee-edit-six-row textarea {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  margin-top: 5px;
  box-sizing: border-box;
}
.employee-stable-detail-form textarea,
.employee-create-six-row-form .employee-edit-six-row textarea {
  height: 42px;
  min-height: 42px;
  resize: vertical;
}
.employee-create-six-row-form > button {
  display: block;
  width: auto;
  min-width: 112px;
  margin: 12px 0 0 auto;
}
.employee-stable-detail-form:not(.is-editing) input:disabled,
.employee-stable-detail-form:not(.is-editing) select:disabled,
.employee-stable-detail-form:not(.is-editing) textarea:disabled {
  color: var(--text);
  opacity: 1;
  cursor: default;
  border-color: #e1e8e4;
  background: #f7f9f8;
  -webkit-text-fill-color: var(--text);
}
.employee-stable-detail-form > button {
  float: right;
  width: auto;
  min-width: 112px;
  margin-top: 12px;
}
.employee-stable-detail-form .oa-inline-edit-error {
  margin: 0 0 10px;
}
.employee-stable-detail-form .employee-stable-native-submit {
  display: none !important;
}
.employee-profile.is-preparing-stable-form {
  position: relative;
  overflow: hidden;
}
.employee-profile.is-preparing-stable-form .profile-grid,
.employee-profile.is-preparing-stable-form .employee-stable-detail-form {
  visibility: hidden !important;
}
.employee-profile.is-preparing-stable-form::after {
  content: "正在加载员工信息…";
  position: absolute;
  inset: 12px;
  display: grid;
  place-items: center;
  min-height: 150px;
  border-radius: 10px;
  color: var(--muted);
  background: linear-gradient(100deg,#f3f6f4 20%,#fafcfb 40%,#f3f6f4 60%);
  background-size: 220% 100%;
  animation: employee-detail-loading 1.1s linear infinite;
}
@keyframes employee-detail-loading {
  to { background-position-x: -220%; }
}
#oa-detail-dialog.employee-detail-booting .oa-modal-body {
  position: relative;
  min-height: min(680px,78vh);
  overflow: hidden;
}
#oa-detail-dialog.employee-detail-booting .oa-modal-frame {
  visibility: hidden !important;
}
#oa-detail-dialog.employee-detail-booting .oa-modal-body::after {
  content: attr(data-loading-text);
  position: absolute;
  inset: 0;
  z-index: 3;
  display: grid;
  place-items: center;
  color: var(--muted);
  background: linear-gradient(100deg,#f3f6f4 20%,#fbfcfb 40%,#f3f6f4 60%);
  background-size: 220% 100%;
  animation: employee-detail-loading 1.1s linear infinite;
}
.original-image-preview-dialog {
  width: min(920px, 96vw);
}
.original-image-preview-dialog .oa-modal-body {
  display: grid;
  min-height: 240px;
  place-items: center;
  padding: 14px;
  background: #f3f6f4;
}
.original-image-preview-dialog img {
  display: block;
  max-width: 100%;
  max-height: 78vh;
  object-fit: contain;
  border-radius: 10px;
}
.original-image-loading {
  color: var(--muted);
}
.detail-action-split .employee-header-edit-cancel {
  width: auto !important;
  min-width: 64px !important;
  margin: 0 7px 0 0 !important;
  padding: 7px 13px !important;
  border-radius: 7px !important;
  color: #526159 !important;
  background: #e6ebe8 !important;
}
.detail-action-split .employee-header-edit-cancel:hover {
  background: #d9e0dc !important;
}
.record-stable-detail-form {
  display: block !important;
  width: 100%;
  margin: 0;
}
.record-stable-detail-form .generic-edit-grid,
.record-stable-detail-form .form-grid {
  display: grid !important;
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  gap: 8px 10px !important;
}
.record-stable-detail-form label {
  min-width: 0;
  margin: 0;
  color: var(--muted);
  font-size: 11px;
}
.record-stable-detail-form input,
.record-stable-detail-form select,
.record-stable-detail-form textarea {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  margin-top: 5px;
  box-sizing: border-box;
}
.record-stable-detail-form textarea {
  height: 42px;
  min-height: 42px;
}
.record-stable-detail-form .income-record-edit-grid {
  grid-template-columns: repeat(4,minmax(0,1fr)) !important;
}
.record-stable-detail-form .income-record-edit-grid .income-edit-half-row {
  grid-column: span 2;
}
.record-stable-detail-form .income-record-edit-grid .income-edit-full-row {
  grid-column: 1/-1;
}
.record-stable-detail-form:not(.is-editing) input:disabled,
.record-stable-detail-form:not(.is-editing) select:disabled,
.record-stable-detail-form:not(.is-editing) textarea:disabled {
  color: var(--text);
  opacity: 1;
  cursor: default;
  border-color: #e1e8e4;
  background: #f7f9f8;
  -webkit-text-fill-color: var(--text);
}
.record-stable-native-submit { display:none !important; }
.employee-stable-detail-form:not(.is-editing) .project-combobox,
.employee-stable-detail-form:not(.is-editing) .relation-search-combobox,
.record-stable-detail-form:not(.is-editing) .project-combobox,
.record-stable-detail-form:not(.is-editing) .relation-search-combobox{pointer-events:none}
.employee-stable-detail-form:not(.is-editing) .project-search-menu,
.record-stable-detail-form:not(.is-editing) .project-search-menu{display:none!important}
.employee-stable-detail-form:not(.is-editing) .project-search-input,
.record-stable-detail-form:not(.is-editing) .project-search-input{cursor:default!important;color:var(--text)!important;opacity:1!important;background:#f7f9f8!important;-webkit-text-fill-color:var(--text)!important}
.account-summary>.record-stable-detail-form{margin-bottom:0!important}
.account-detail-main>.account-summary{margin-bottom:0!important}
.account-detail-main>.account-statistics-block{display:block!important;width:100%;min-width:0;margin:10px 0 0!important;padding:12px 14px!important;box-sizing:border-box!important;border:1px solid #dfe8e3!important;border-radius:11px!important;background:#fff!important}
.modification-reason-hidden,.panel form label:has([name="reason"]){display:none!important}.modification-reason-dialog{width:min(520px,92vw)}.modification-reason-dialog .oa-modal-body{padding:18px}.modification-reason-dialog label{display:block!important;margin:0}.modification-reason-dialog textarea{min-height:92px;resize:vertical}.modification-reason-tip{margin:7px 0 0!important;color:#7a8981;font-size:12px}.modification-reason-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:15px}.modification-reason-actions button{width:auto;min-width:92px;margin:0}.modification-reason-actions .reason-cancel{color:#46584f;background:#e7ece9}
.embedded-child-create-panel:has(.embedded-temporary-employee-form){max-width:900px}.embedded-temporary-employee-form .v151-employee-form{grid-template-columns:repeat(2,minmax(0,1fr))!important}.embedded-temporary-employee-form>button{justify-self:end}.embedded-temporary-employee-form .fixed-salary-field{display:none!important}@media(max-width:620px){.embedded-temporary-employee-form .v151-employee-form{grid-template-columns:1fr!important}}
.account-statistics-title{display:flex!important;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 8px!important;padding:0!important;border:0!important;background:transparent!important}
.account-statistics-title b{font-size:13px;color:#314b40}.account-statistics-title small{color:#819088;font-size:11px}
.account-statistics-block .account-detail-statistics,.account-statistics-block .account-stats-grid,.account-statistics-block .account-second-row{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;width:100%!important;min-width:0!important;gap:8px!important;margin:0!important}
.account-statistics-block .account-detail-statistics>div,.account-statistics-block .account-stats-grid>div,.account-statistics-block .account-second-row>div{display:block!important;min-width:0!important;padding:9px 10px!important;border:1px solid #e1e9e4!important;border-radius:8px!important;background:#f4f7f5!important}
.account-statistics-block .account-detail-statistics>div:first-child,.account-statistics-block .account-stats-grid>div:first-child,.account-statistics-block .account-second-row>div:first-child{border-color:#c6e0d1!important;background:#eaf6ef!important}
@media(max-width:560px){.account-statistics-block .account-detail-statistics,.account-statistics-block .account-stats-grid,.account-statistics-block .account-second-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:430px){.account-statistics-title{align-items:flex-start;flex-direction:column;gap:2px}.account-statistics-block .account-detail-statistics,.account-statistics-block .account-stats-grid,.account-statistics-block .account-second-row{grid-template-columns:1fr!important}}
@media(max-width:760px){
  .record-stable-detail-form .generic-edit-grid,
  .record-stable-detail-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .record-stable-detail-form .income-record-edit-grid .income-edit-half-row{grid-column:span 1}
}
@media(max-width:520px){
  .record-stable-detail-form .generic-edit-grid,
  .record-stable-detail-form .form-grid{grid-template-columns:1fr!important}
}

/* v0.15.991: customer detail reuses the same searchable company picker as creation. */
html body .record-stable-detail-form.record-stable-customer-form .customer-talent-field{
  position:relative!important;
  min-width:0!important;
}
html body .record-stable-detail-form.record-stable-customer-form .customer-talent-field > .customer-company-picker,
html body .record-stable-detail-form.record-stable-customer-form .customer-company-display{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
}
html body .record-stable-detail-form.record-stable-customer-form .customer-company-select[hidden]{display:none!important}
html body .record-stable-detail-form.record-stable-customer-form .customer-company-display{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  height:46px!important;
  min-height:46px!important;
  padding:6px 34px 6px 9px!important;
  text-align:left!important;
}
html body .record-stable-detail-form.record-stable-customer-form[data-oa-stable-editing="1"] .customer-company-display{
  cursor:pointer!important;
  color:var(--text)!important;
  border-color:#ced8d1!important;
  background:#fbfcfb!important;
}
html body .record-stable-detail-form.record-stable-customer-form .customer-company-picker.is-open{
  z-index:16000!important;
}
html body .record-stable-detail-form.record-stable-customer-form .customer-company-menu{
  z-index:16001!important;
}

/* Server-rendered detail fields use the same visual language as locked form controls.
   This prevents the legacy card layout flashing before the editable form is hydrated. */
.generic-detail-page .generic-field-grid,
.modal-detail-page .profile-grid,
.quotation-detail-page .profile-grid {
  display: grid !important;
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  gap: 8px 10px !important;
  margin-top: 0 !important;
}
.generic-detail-page .generic-field-grid > div,
.modal-detail-page .profile-grid > div,
.quotation-detail-page .profile-grid > div,
.employee-profile .profile-grid > div,
.account-detail-row > div,
.account-first-row > div,
.account-second-row > div {
  min-width: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}
.generic-detail-page .generic-field-grid small,
.modal-detail-page .profile-grid small,
.quotation-detail-page .profile-grid small,
.employee-profile .profile-grid small,
.account-detail-row small,
.account-first-row small,
.account-second-row small {
  display: block !important;
  height: 16px !important;
  margin: 0 0 5px 1px !important;
  color: var(--muted) !important;
  font-size: 11px !important;
  line-height: 16px !important;
}
.generic-detail-page .generic-field-grid strong,
.modal-detail-page .profile-grid strong,
.quotation-detail-page .profile-grid strong,
.employee-profile .profile-grid strong,
.account-detail-row strong,
.account-first-row strong,
.account-second-row strong {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  min-height: 42px !important;
  padding: 9px 12px !important;
  box-sizing: border-box !important;
  border: 1px solid #e1e8e4 !important;
  border-radius: 9px !important;
  color: var(--text) !important;
  background: #f7f9f8 !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}
.project-summary .project-meta {
  display: grid !important;
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  gap: 8px 10px !important;
  margin-top: 0 !important;
}
.project-summary .project-meta > span {
  display: flex !important;
  align-items: center !important;
  min-height: 42px !important;
  padding: 9px 12px !important;
  box-sizing: border-box !important;
  border: 1px solid #e1e8e4 !important;
  border-radius: 9px !important;
  color: var(--text) !important;
  background: #f7f9f8 !important;
}
.generic-detail-main > .section-head,
.project-summary > h2 {
  display: none !important;
}
@media(max-width:760px){
  .generic-detail-page .generic-field-grid,
  .modal-detail-page .profile-grid,
  .quotation-detail-page .profile-grid,
  .project-summary .project-meta{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:520px){
  .generic-detail-page .generic-field-grid,
  .modal-detail-page .profile-grid,
  .quotation-detail-page .profile-grid,
  .project-summary .project-meta{grid-template-columns:1fr!important}
}
@media(max-width:760px){
  .employee-stable-detail-form .employee-form{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .employee-edit-six-row {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    grid-template-areas:
      "employee-name employee-type"
      "employee-number employee-gender"
      "employee-company employee-ethnicity"
      "employee-education employee-native"
      "employee-phone employee-id-card"
      "employee-address employee-address"
      "employee-department employee-position"
      "employee-emergency employee-emergency-phone"
      "employee-bank employee-bank"
      "employee-hire employee-card"
      "employee-remark employee-remark"
      "employee-salary employee-ratio";
  }
}
@media(max-width:520px){
  .employee-stable-detail-form .employee-form{grid-template-columns:1fr!important}
  .employee-edit-six-row {
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "employee-name"
      "employee-type"
      "employee-number"
      "employee-gender"
      "employee-company"
      "employee-ethnicity"
      "employee-education"
      "employee-native"
      "employee-phone"
      "employee-id-card"
      "employee-address"
      "employee-department"
      "employee-position"
      "employee-emergency"
      "employee-emergency-phone"
      "employee-bank"
      "employee-hire"
      "employee-card"
      "employee-remark"
      "employee-salary"
      "employee-ratio";
  }
}

@media (max-width: 520px) {
    .after-sale-inline-fields {
        grid-template-columns: 1fr;
    }

    .after-sale-issue-field {
        grid-column: 1;
    }

    .after-sale-inline-actions button {
        width: 100%;
    }

    .after-sale-inline-editing .profile-grid {
        grid-template-columns: 1fr;
    }
}

/* 关联数据下拉统一为可搜索匹配组件 */
.relation-search-combobox {
    position: relative;
    width: 100%;
    min-width: 0;
}

.relation-search-input {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.relation-search-native {
    position: absolute !important;
    left: 0;
    bottom: 0;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    opacity: 0;
    pointer-events: none;
}

.relation-search-input:invalid:not(:placeholder-shown) {
    border-color: #c55a50;
    box-shadow: 0 0 0 3px rgba(197, 90, 80, .1);
}

/* 日期时间组件整块区域均可唤起选择器 */
.full-area-date-picker {
    cursor: pointer;
}

.full-area-date-picker:disabled,
.full-area-date-picker[readonly] {
    cursor: default;
}

.full-area-date-picker::-webkit-calendar-picker-indicator {
    cursor: pointer;
}

/* 销售订单商品搜索菜单避免被表格裁切 */
.oa-modal-body .table-wrap:has(#sales-items),
.oa-modal-body .table-wrap:has(.sales-product) {
    overflow: visible !important;
}

#sales-items tbody td,
.table-wrap td:has(.sales-product),
.table-wrap td:has(.relation-search-combobox) {
    overflow: visible !important;
}

#sales-items .relation-search-combobox,
#sales-items .project-combobox {
    z-index: 20;
}

#sales-items .relation-search-menu,
#sales-items .project-search-menu {
    z-index: 2200;
    min-width: 260px;
}
.dropdown-portal-menu {
    position: fixed !important;
    z-index: 10000 !important;
    right: auto !important;
    max-width: calc(100vw - 16px);
    max-height: min(300px, 45vh);
}
.oa-modal.dropdown-portal-host {
    overflow: visible !important;
}
/* Permission custom rules: one rule per row; controls stay on the same row. */
.permission-group-form {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}
.permission-group-form .advanced-rule-list {
  display: flex !important;
  flex-direction: column !important;
  grid-template-columns: none !important;
  width: 100% !important;
  gap: 12px !important;
}
.permission-group-form .advanced-rule-row.advanced-rule-row-vertical {
  display: grid !important;
  grid-template-columns: minmax(132px, 150px) minmax(118px, 138px) minmax(0, 1fr) 34px !important;
  width: 100% !important;
  min-width: 0 !important;
  padding: 12px !important;
  box-sizing: border-box !important;
  gap: 9px !important;
  align-items: start !important;
}
.permission-group-form .advanced-rule-row-vertical .advanced-rule-control,
.permission-group-form .advanced-rule-row-vertical .advanced-rule-value {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
.permission-group-form .advanced-rule-row-vertical .advanced-rule-control > small,
.permission-group-form .advanced-rule-row-vertical .advanced-value-label {
  display: block !important;
  position: static !important;
  margin: 0 0 5px 1px !important;
  color: var(--muted) !important;
  font-size: 12px !important;
  line-height: 16px !important;
}
.permission-group-form .advanced-rule-row-vertical .advanced-rule-value::before {
  display: none !important;
  content: none !important;
}
.permission-group-form .advanced-rule-row-vertical select,
.permission-group-form .advanced-rule-row-vertical input,
.permission-group-form .advanced-rule-row-vertical select[multiple] {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: 42px !important;
  min-height: 42px !important;
  margin: 0 !important;
  padding-top: 8px !important;
  padding-bottom: 8px !important;
  box-sizing: border-box !important;
}
.permission-group-form .advanced-rule-row-vertical .advanced-rule-value {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 6px !important;
}
.permission-group-form .advanced-rule-row-vertical .advanced-value-help {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  color: var(--muted) !important;
  font-size: 12px !important;
  line-height: 1.6 !important;
  overflow: visible !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}
.permission-group-form .advanced-rule-row-vertical .advanced-value-label {
  grid-row: 1 !important;
}
.permission-group-form .advanced-rule-row-vertical .advanced-remove-rule {
  grid-column: 4 !important;
  grid-row: 1 !important;
  width: 34px !important;
  height: 34px !important;
  min-height: 34px !important;
  margin: 21px 0 0 !important;
  padding: 0 !important;
}
.permission-group-form .advanced-rule-top {
  min-width: 0 !important;
}
.permission-group-form .advanced-rule-top > label {
  align-items: center !important;
  min-width: 0 !important;
}
.permission-group-form .advanced-rule-top .advanced-match {
  width: 174px !important;
  height: 42px !important;
  min-height: 42px !important;
  margin: 0 !important;
  padding-top: 8px !important;
  padding-bottom: 8px !important;
  box-sizing: border-box !important;
}
.permission-group-form .advanced-rule-preview {
  max-width: 100% !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}
@media (max-width: 760px) {
  .permission-group-form .advanced-rule-row.advanced-rule-row-vertical {
    grid-template-columns: minmax(0, 1fr) 36px !important;
  }
  .permission-group-form .advanced-rule-row-vertical .advanced-rule-control,
  .permission-group-form .advanced-rule-row-vertical .advanced-rule-value {
    grid-column: 1 !important;
  }
  .permission-group-form .advanced-rule-row-vertical .advanced-remove-rule {
    grid-column: 2 !important;
  }
}
/* Compact permission navigation selector. */
.permission-group-form .permission-compact-picker {
  margin: 12px 0 16px !important;
  padding: 13px !important;
  border: 1px solid #dce7e1 !important;
  border-radius: 11px !important;
  background: #fff !important;
}
.permission-group-form .permission-compact-title,
.permission-group-form .permission-config-title {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin-bottom: 10px !important;
}
.permission-group-form .permission-compact-title b,
.permission-group-form .permission-compact-title small,
.permission-group-form .permission-config-title b,
.permission-group-form .permission-config-title small {
  display: block !important;
}
.permission-group-form .permission-compact-title small,
.permission-group-form .permission-config-title small {
  margin-top: 2px !important;
  color: var(--muted) !important;
  font-size: 11px !important;
}
.permission-group-form .permission-selected-total {
  flex: 0 0 auto !important;
  padding: 5px 9px !important;
  border-radius: 999px !important;
  color: #17634f !important;
  background: #e4f2eb !important;
  font-size: 12px !important;
}
.permission-group-form .permission-compact-grid {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 7px !important;
}
.permission-group-form .permission-compact-choice {
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 8px 9px !important;
  border: 1px solid #e0e8e4 !important;
  border-radius: 8px !important;
  background: #f8faf9 !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}
.permission-group-form .permission-compact-choice:has(input:checked) {
  border-color: #74b99d !important;
  color: #17634f !important;
  background: #e9f5ef !important;
}
.permission-group-form .permission-compact-choice input {
  flex: 0 0 auto !important;
  width: 16px !important;
  height: 16px !important;
  min-height: 16px !important;
  margin: 0 !important;
}
.permission-group-form .permission-compact-choice span {
  min-width: 0 !important;
  overflow: hidden !important;
  font-size: 12px !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.permission-group-form .permission-config-title {
  margin: 17px 0 8px !important;
}
.permission-group-form .permission-config-empty {
  padding: 20px !important;
  border: 1px dashed #cbd9d2 !important;
  border-radius: 9px !important;
  color: var(--muted) !important;
  text-align: center !important;
  background: #f8faf9 !important;
}
.permission-group-form .permission-selected-config-card > summary {
  grid-template-columns: minmax(0, 1fr) 24px !important;
}
.permission-group-form .permission-selected-config-card[hidden] {
  display: none !important;
}
@media (max-width: 900px) {
  .permission-group-form .permission-compact-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 560px) {
  .permission-group-form .permission-compact-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Final alignment for permission custom-rule controls. */
.permission-group-form .advanced-rule-row {
  align-items: start !important;
}
.permission-group-form .advanced-rule-field-wrap,
.permission-group-form .advanced-rule-operator-wrap,
.permission-group-form .advanced-rule-value {
  align-self: start !important;
  margin: 0 !important;
  padding: 0 !important;
}
.permission-group-form .advanced-rule-field-wrap > small,
.permission-group-form .advanced-rule-operator-wrap > small,
.permission-group-form .advanced-value-title {
  position: static !important;
  display: block !important;
  height: 16px !important;
  margin: 0 0 5px 1px !important;
  color: var(--muted) !important;
  font-size: 11px !important;
  line-height: 16px !important;
}
.permission-group-form .advanced-rule-value::before {
  display: none !important;
  content: none !important;
}
.permission-group-form .advanced-value-title {
  width: 100% !important;
}
.permission-group-form .advanced-rule-value {
  display: block !important;
}
.permission-group-form .advanced-rule-field-wrap select,
.permission-group-form .advanced-rule-operator-wrap select,
.permission-group-form .advanced-rule-value > input,
.permission-group-form .advanced-rule-value > select,
.permission-group-form .permission-rule-multi-display {
  width: 100% !important;
  height: 42px !important;
  min-height: 42px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}
.permission-group-form .permission-rule-multi-picker {
  width: 100% !important;
  margin: 0 !important;
}

/* Employee custom-scope rows use the same compact control geometry as every other module. */
.permission-group-form .permission-employee-rule-row {
  grid-template-columns: minmax(150px, .8fr) minmax(145px, .72fr) minmax(260px, 1.55fr) 34px !important;
  align-items: start !important;
}
.permission-group-form .permission-employee-rule-row .advanced-rule-field-wrap > select,
.permission-group-form .permission-employee-rule-row .advanced-rule-operator-wrap > select,
.permission-group-form .permission-employee-rule-row .advanced-rule-value > input,
.permission-group-form .permission-employee-rule-row .advanced-rule-value > select,
.permission-group-form .permission-employee-rule-row .permission-rule-multi-display,
.permission-group-form .permission-employee-rule-row .advanced-no-value {
  width: 100% !important;
  height: 42px !important;
  min-height: 42px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}
.permission-group-form .permission-employee-rule-row .advanced-no-value {
  display: flex !important;
  align-items: center !important;
  padding: 0 11px !important;
}

/* Do not crop selected chips or native control text in permission rules. */
.permission-group-form .advanced-rule-field-wrap > select,
.permission-group-form .advanced-rule-operator-wrap > select,
.permission-group-form .advanced-rule-value > select:not([multiple]),
.permission-group-form .advanced-rule-value > input,
.permission-group-form .permission-scope-select {
  height: 42px !important;
  min-height: 42px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  line-height: normal !important;
}
.permission-group-form .permission-rule-multi-display,
.permission-group-form .permission-employee-rule-row .permission-rule-multi-display {
  height: auto !important;
  min-height: 42px !important;
  padding-top: 6px !important;
  padding-bottom: 6px !important;
  line-height: 20px !important;
  overflow: visible !important;
}
.permission-group-form .permission-rule-multi-chip,
.permission-group-form .permission-hidden-chip {
  max-width: 100% !important;
  line-height: 20px !important;
}

/* Customer price and system cards have no independent create switch. */
.permission-group-form .permission-scope-line:not(:has(.permission-create-toggle)) {
  grid-template-columns: 72px minmax(145px,185px) 64px minmax(220px,1fr) !important;
}
@media (max-width: 720px) {
  .permission-group-form .permission-employee-rule-row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 34px !important;
  }
  .permission-group-form .permission-employee-rule-row .advanced-rule-value {
    grid-column: 1 / 3 !important;
  }
  .permission-group-form .permission-scope-line:not(:has(.permission-create-toggle)) {
    grid-template-columns: 1fr !important;
  }
}

/* Permission edit dialog must shrink internally instead of creating a page scrollbar. */
dialog.oa-modal:has(.permission-group-form) {
  width: min(1200px, calc(100vw - 32px)) !important;
  max-width: calc(100vw - 32px) !important;
  box-sizing: border-box !important;
}
dialog.oa-modal:has(.permission-group-form) > .oa-modal-body {
  min-width: 0 !important;
  overflow-x: hidden !important;
}
dialog.oa-modal:has(.permission-group-form:not(.permission-ui-ready)) > .oa-modal-body {
  position: relative !important;
  min-height: 220px !important;
  overflow: hidden !important;
}
dialog.oa-modal:has(.permission-group-form:not(.permission-ui-ready)) > .oa-modal-body::before {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: grid;
  place-items: center;
  color: var(--muted);
  background: #f7f9f8;
  content: '正在加载权限设置…';
  font-size: 14px;
}
.permission-group-form:not(.permission-ui-ready) {
  visibility: hidden !important;
  opacity: 0 !important;
}
.permission-group-form.permission-ui-ready {
  visibility: visible !important;
  opacity: 1 !important;
}
.permission-group-form,
.permission-group-form .permission-navigation-selector,
.permission-group-form .permission-navigation-builder,
.permission-group-form .permission-navigation-cards,
.permission-group-form .permission-navigation-card,
.permission-group-form .permission-navigation-body,
.permission-group-form .permission-scope-section,
.permission-group-form .permission-partial-choices,
.permission-group-form .advanced-rule-list,
.permission-group-form .advanced-rule-row,
.permission-group-form .advanced-rule-field-wrap,
.permission-group-form .advanced-rule-operator-wrap,
.permission-group-form .advanced-rule-value,
.permission-group-form .permission-hidden-picker {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
.permission-group-form {
  width: 100% !important;
  overflow-x: hidden !important;
}
.permission-group-form .advanced-rule-row,
.permission-group-form .permission-employee-rule-row {
  grid-template-columns: minmax(0,.82fr) minmax(0,.72fr) minmax(0,1.55fr) 34px !important;
  width: 100% !important;
}
.permission-group-form .permission-scope-line {
  width: 100% !important;
  max-width: 100% !important;
}
.permission-group-form .permission-hidden-display,
.permission-group-form .permission-rule-multi-display {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
}
.permission-group-form .permission-hidden-chip,
.permission-group-form .permission-rule-multi-chip {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.permission-group-form .advanced-rule-preview {
  min-width: 0 !important;
  max-width: 100% !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}
@media (max-width: 760px) {
  dialog.oa-modal:has(.permission-group-form) {
    width: calc(100vw - 12px) !important;
    max-width: calc(100vw - 12px) !important;
  }
  .permission-group-form .advanced-rule-row,
  .permission-group-form .permission-employee-rule-row {
    grid-template-columns: minmax(0,1fr) minmax(0,1fr) 34px !important;
  }
  .permission-group-form .advanced-rule-value {
    grid-column: 1 / 3 !important;
  }
}

/* Keep permission-group search/actions in the same top-right toolbar used by lists. */
.permission-group-list > .permission-group-list-actions {
  width: 100% !important;
  margin: 0 0 14px !important;
  justify-content: flex-end !important;
}
.list-primary-actions > .media-device-list-search + .compact-view-toolbar {
  order: initial !important;
  flex: 0 0 auto !important;
}
@media (max-width: 760px) {
  .permission-group-list > .permission-group-list-actions {
    width: 100% !important;
    flex-wrap: wrap !important;
  }
}

/* 产品、采购物品、资料：手机端搜索、视图切换和新增保持同一行。 */
@media (max-width: 700px) {
  .workspace .catalog-visual-list-toolbar {
    display: grid !important;
    grid-template-columns: minmax(68px, 1fr) auto auto !important;
    align-items: center !important;
    gap: 6px !important;
    width: 100% !important;
    flex-wrap: nowrap !important;
  }

  .workspace .catalog-visual-list-toolbar > .media-device-list-search {
    grid-column: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 40px !important;
    padding: 8px 10px !important;
    font-size: 13px !important;
  }

  .workspace .catalog-visual-list-toolbar > .compact-view-toolbar {
    grid-column: 2 !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  .workspace .catalog-visual-list-toolbar > .oa-open-modal,
  .workspace .catalog-visual-list-toolbar > .permission-denied-create {
    grid-column: 3 !important;
    width: auto !important;
    min-width: 50px !important;
    height: 40px !important;
    margin: 0 !important;
    padding: 8px 10px !important;
    font-size: 0 !important;
    white-space: nowrap !important;
  }

  .workspace .catalog-visual-list-toolbar > .oa-open-modal::after,
  .workspace .catalog-visual-list-toolbar > .permission-denied-create::after {
    content: "新增";
    font-size: 13px;
  }
}

/* Keep every piecework-standard column equal without horizontal scrolling. */
.workspace .piecework-standard-table-wrap {
  overflow-x: hidden !important;
}
.workspace table.piecework-standard-equal-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
}
.workspace table.piecework-standard-equal-table th,
.workspace table.piecework-standard-equal-table td {
  width: 16.6667% !important;
  min-width: 0 !important;
  max-width: 16.6667% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.workspace table.piecework-standard-equal-table col {
  width: 16.6667% !important;
  min-width: 0 !important;
  max-width: 16.6667% !important;
}

/* Keep every visible task-schedule column evenly distributed. */
.workspace .task-schedule-table-wrap {
  overflow-x: hidden !important;
}
.workspace table.task-schedule-equal-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
}
.workspace table.task-schedule-equal-table th,
.workspace table.task-schedule-equal-table td {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/* Fit the temporary-work list in the content area; long remarks stay compact. */
.workspace .temp-work-list-wrap {
  overflow-x: hidden !important;
}
.workspace table.temp-work-list-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
}
.workspace table.temp-work-list-table th,
.workspace table.temp-work-list-table td {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.workspace table.temp-work-list-table :is(th,td):nth-child(1) { width: 10% !important; }
.workspace table.temp-work-list-table :is(th,td):nth-child(2) { width: 14% !important; }
.workspace table.temp-work-list-table :is(th,td):nth-child(3) { width: 18% !important; }
.workspace table.temp-work-list-table :is(th,td):nth-child(4) { width: 9% !important; }
.workspace table.temp-work-list-table :is(th,td):nth-child(5) { width: 7% !important; }
.workspace table.temp-work-list-table :is(th,td):nth-child(6) { width: 10% !important; }
.workspace table.temp-work-list-table :is(th,td):nth-child(7) { width: 10% !important; }
.workspace table.temp-work-list-table :is(th,td):nth-child(8) { width: 11% !important; }
.workspace table.temp-work-list-table :is(th,td):nth-child(9) { width: 11% !important; }

/* Income records: fit all columns, widen projects, and reserve flexible remark space. */
.workspace .income-record-fit-wrap {
  overflow-x: hidden !important;
}
.workspace table.income-record-fit-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
}
.workspace table.income-record-fit-table th,
.workspace table.income-record-fit-table td {
  min-width: 0 !important;
  max-width: none !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.workspace table.income-record-fit-table .review-status-cell {
  min-width: 0 !important;
  overflow: hidden !important;
}

/* Expense records: fit the merged invoice status and prioritize project names. */
.workspace .expense-record-fit-wrap {
  overflow-x: hidden !important;
}
.workspace table.expense-record-fit-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
}
.workspace table.expense-record-fit-table th,
.workspace table.expense-record-fit-table td {
  min-width: 0 !important;
  max-width: none !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.workspace table.expense-record-fit-table .review-status-cell {
  min-width: 0 !important;
  overflow: hidden !important;
}
.workspace table.expense-record-fit-table > thead > tr > th:nth-child(7),
.workspace table.expense-record-fit-table > tbody > tr > td:nth-child(7) {
  width: 68px !important;
  text-align: center !important;
}
@media (min-width:901px) {
  .workspace table.expense-record-fit-table > thead > tr > th:first-child,
  .workspace table.expense-record-fit-table > tbody > tr > td:first-child,
  .workspace table.expense-record-fit-table > tfoot > tr > td:first-child {
    width: 132px !important;
    padding-left: 36px !important;
    text-overflow: clip !important;
  }
}

/* Procurement orders: reserve space for fixed identifiers and fit the full table. */
.workspace .procurement-order-list-wrap {
  overflow-x: hidden !important;
}
.workspace table.procurement-order-list-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
}
.workspace table.procurement-order-list-table th,
.workspace table.procurement-order-list-table td {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.workspace table.procurement-order-list-table :is(th,td):nth-child(1) { width: 10% !important; }
.workspace table.procurement-order-list-table :is(th,td):nth-child(2) { width: 13% !important; }
.workspace table.procurement-order-list-table :is(th,td):nth-child(3) { width: 11% !important; }
.workspace table.procurement-order-list-table :is(th,td):nth-child(4) { width: 11% !important; }
.workspace table.procurement-order-list-table :is(th,td):nth-child(5) { width: 18% !important; }
.workspace table.procurement-order-list-table :is(th,td):nth-child(6) { width: 8% !important; }
.workspace table.procurement-order-list-table :is(th,td):nth-child(7) { width: 8% !important; }
.workspace table.procurement-order-list-table :is(th,td):nth-child(8) { width: 11% !important; }
.workspace table.procurement-order-list-table :is(th,td):nth-child(9) { width: 10% !important; }

/* After-sales list: keep every column in view and constrain long issue text. */
.workspace .after-sale-list-wrap {
  overflow-x: hidden !important;
}
.workspace table.after-sale-list-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
}
.workspace table.after-sale-list-table th,
.workspace table.after-sale-list-table td {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.workspace table.after-sale-list-table :is(th,td):nth-child(1) { width: 7% !important; }
.workspace table.after-sale-list-table :is(th,td):nth-child(2) { width: 8% !important; }
.workspace table.after-sale-list-table :is(th,td):nth-child(3) { width: 9% !important; }
.workspace table.after-sale-list-table :is(th,td):nth-child(4) { width: 9% !important; }
.workspace table.after-sale-list-table :is(th,td):nth-child(5) { width: 8% !important; }
.workspace table.after-sale-list-table :is(th,td):nth-child(6) { width: 9% !important; }
.workspace table.after-sale-list-table :is(th,td):nth-child(7) { width: 9% !important; }
.workspace table.after-sale-list-table :is(th,td):nth-child(8) { width: 9% !important; }
.workspace table.after-sale-list-table :is(th,td):nth-child(9) { width: 9% !important; }
.workspace table.after-sale-list-table :is(th,td):nth-child(10) { width: 8% !important; }
.workspace table.after-sale-list-table :is(th,td):nth-child(11) { width: 8% !important; }
.workspace table.after-sale-list-table :is(th,td):nth-child(12) { width: 7% !important; text-align: center; }

/* Product inventory keeps product name and unit in separate columns. */
.workspace table.inventory-list-table {
  width: 100% !important;
  min-width: 0 !important;
  table-layout: fixed !important;
}
.workspace table.inventory-list-table th,
.workspace table.inventory-list-table td {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.workspace table.inventory-list-table :is(th,td):nth-child(1) { width: 25% !important; }
.workspace table.inventory-list-table :is(th,td):nth-child(2) { width: 10% !important; }
.workspace table.inventory-list-table :is(th,td):nth-child(3) { width: 14% !important; }
.workspace table.inventory-list-table :is(th,td):nth-child(4) { width: 10% !important; }
.workspace table.inventory-list-table :is(th,td):nth-child(5) { width: 12% !important; }
.workspace table.inventory-list-table :is(th,td):nth-child(6) { width: 29% !important; }

/* Purchasing inventory: prioritize the item name and constrain remarks. */
.workspace .packaging-inventory-list-wrap {
  overflow-x: hidden !important;
}
.workspace table.packaging-inventory-list-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
}
.workspace table.packaging-inventory-list-table th,
.workspace table.packaging-inventory-list-table td {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.workspace table.packaging-inventory-list-table :is(th,td):nth-child(1) { width: 13% !important; }
.workspace table.packaging-inventory-list-table :is(th,td):nth-child(2) { width: 9% !important; }
.workspace table.packaging-inventory-list-table :is(th,td):nth-child(3) { width: 30% !important; }
.workspace table.packaging-inventory-list-table :is(th,td):nth-child(4) { width: 10% !important; }
.workspace table.packaging-inventory-list-table :is(th,td):nth-child(5) { width: 11% !important; }
.workspace table.packaging-inventory-list-table :is(th,td):nth-child(6) { width: 13% !important; }
.workspace table.packaging-inventory-list-table :is(th,td):nth-child(7) { width: 14% !important; }

/* Phone management uses ten evenly sized visible columns. */
.workspace .media-device-equal-wrap {
  overflow-x: hidden !important;
}
.workspace table.media-device-equal-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
}
.workspace table.media-device-equal-table th,
.workspace table.media-device-equal-table td {
  width: 10% !important;
  min-width: 0 !important;
  max-width: 10% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/* SIM cards: give phone numbers room and keep remarks compact. */
.workspace .media-sim-width-wrap {
  overflow-x: hidden !important;
}
.workspace table.media-sim-width-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
}
.workspace table.media-sim-width-table th,
.workspace table.media-sim-width-table td {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.workspace table.media-sim-width-table :is(th,td):nth-child(1) { width: 8% !important; }
.workspace table.media-sim-width-table :is(th,td):nth-child(2) { width: 12% !important; }
.workspace table.media-sim-width-table :is(th,td):nth-child(3) { width: 10% !important; }
.workspace table.media-sim-width-table :is(th,td):nth-child(4) { width: 8% !important; }
.workspace table.media-sim-width-table :is(th,td):nth-child(5) { width: 12% !important; }
.workspace table.media-sim-width-table :is(th,td):nth-child(6) { width: 8% !important; }
.workspace table.media-sim-width-table :is(th,td):nth-child(7) { width: 6% !important; }
.workspace table.media-sim-width-table :is(th,td):nth-child(8) { width: 6% !important; }
.workspace table.media-sim-width-table :is(th,td):nth-child(9) { width: 6% !important; }
.workspace table.media-sim-width-table :is(th,td):nth-child(10) { width: 7% !important; }
.workspace table.media-sim-width-table :is(th,td):nth-child(11) { width: 6% !important; }
.workspace table.media-sim-width-table :is(th,td):nth-child(12) { width: 7% !important; }
.workspace table.media-sim-width-table :is(th,td):nth-child(13) { width: 4% !important; }

/* Unified full-width configuration panels */
.workspace .settings-page,
.workspace .approval-settings-page {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 20px !important;
    box-sizing: border-box !important;
    border: 1px solid var(--line) !important;
    border-radius: 12px !important;
    background: #fff !important;
    box-shadow: none !important;
}

.workspace .settings-page > .settings-page-head,
.workspace .approval-settings-page > header {
    margin: 0 0 18px !important;
    padding: 0 0 16px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--line) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.workspace .settings-page .settings-card,
.workspace .approval-settings-page .approval-workflow-row {
    background: #f8faf9 !important;
    box-shadow: none !important;
}

.workspace .approval-settings-page > header h2 {
    margin: 0 !important;
}

.workspace .approval-settings-page .approval-workflow-name small {
    display: none !important;
}

.workspace .approval-settings-page footer {
    justify-content: flex-end !important;
}

.workspace .settings-page .settings-actions,
.workspace .approval-settings-page footer {
    margin: 18px 0 0 !important;
    padding: 16px 0 0 !important;
    border: 0 !important;
    border-top: 1px solid var(--line) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

@media (max-width: 700px) {
    .workspace .settings-page,
    .workspace .approval-settings-page {
        padding: 14px !important;
    }
}

.employee-form .employee-lifecycle-value {
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid #dfe8e3;
    border-radius: 9px;
    background: #f4f7f5;
}

.employee-form .employee-lifecycle-value small,
.employee-form .employee-lifecycle-value strong {
    display: block;
}

.employee-form .employee-lifecycle-value small {
    margin-bottom: 6px;
    color: var(--muted);
    font-size: 12px;
}

.employee-form .employee-lifecycle-value strong {
    min-height: 22px;
    overflow-wrap: anywhere;
}

.customer-type-list-table th,
.customer-type-list-table td {
    padding: 10px 5px;
    font-size: 11px;
}

.customer-type-list-table th {
    letter-spacing: 0;
}

.customer-type-list-table .customer-stat-cell {
    text-align: center;
}

.customer-grade-tag {
    min-width: 28px;
    justify-content: center;
    text-transform: uppercase;
}

.customer-grade-tag.grade-a { color: #17634f; background: #e1f3eb; }
.customer-grade-tag.grade-b { color: #27629b; background: #e7f1fb; }
.customer-grade-tag.grade-c { color: #8a6318; background: #fff2d7; }
.customer-grade-tag.grade-d,
.customer-grade-tag.grade-e { color: #92433c; background: #fce9e7; }
.customer-grade-tag.grade--,
.customer-grade-tag.grade-none { color: #718078; background: #edf1ef; }

.customer-dynamic-cell {
    white-space: normal !important;
}

.customer-dynamic-summary {
    min-width: 0;
    padding-left: 8px;
    border-left: 3px solid #7bb19e;
}

.customer-dynamic-summary strong,
.customer-dynamic-summary small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
}

.customer-dynamic-summary strong {
    color: #29473d;
    font-size: 11px;
    white-space: nowrap;
}

.customer-dynamic-summary small {
    margin-top: 2px;
    color: #718078;
    font-size: 10px;
    white-space: nowrap;
}

.customer-dynamic-summary.is-overdue { border-left-color: #d7554b; }
.customer-dynamic-summary.is-overdue small { color: #b43c34; }
.customer-dynamic-summary.is-due { border-left-color: #d8a12f; }
.customer-dynamic-summary.is-due small { color: #8a6318; }
.customer-dynamic-summary.is-empty { border-left-color: #aab5af; }

.customer-customer-table th:nth-child(1) { width: 4%; }
.customer-customer-table th:nth-child(2) { width: 6%; }
.customer-customer-table th:nth-child(3) { width: 9%; }
.customer-customer-table th:nth-child(4) { width: 8%; }
.customer-customer-table th:nth-child(5) { width: 6%; }
.customer-customer-table th:nth-child(6) { width: 5%; }
.customer-customer-table th:nth-child(7) { width: 5%; }
.customer-customer-table th:nth-child(8) { width: 8%; }
.customer-customer-table th:nth-child(9) { width: 5%; }
.customer-customer-table th:nth-child(10) { width: 8%; }
.customer-customer-table th:nth-child(11) { width: 16%; }
.customer-customer-table th:nth-child(12) { width: 20%; }

.customer-talent-table th:nth-child(1) { width: 4%; }
.customer-talent-table th:nth-child(2) { width: 6%; }
.customer-talent-table th:nth-child(3) { width: 10%; }
.customer-talent-table th:nth-child(4) { width: 9%; }
.customer-talent-table th:nth-child(5) { width: 5%; }
.customer-talent-table th:nth-child(6) { width: 5%; }
.customer-talent-table th:nth-child(7) { width: 9%; }
.customer-talent-table th:nth-child(8) { width: 5%; }
.customer-talent-table th:nth-child(9) { width: 9%; }
.customer-talent-table th:nth-child(10) { width: 17%; }
.customer-talent-table th:nth-child(11) { width: 21%; }

.customer-talent-field {
    position: relative;
    min-width: 0;
}

.customer-company-required::before {
    content: "* ";
    color: #d0443b;
    font-weight: 800;
}

.customer-talent-field:has(.customer-company-picker.is-open) {
    z-index: 1200;
}

.customer-company-picker {
    position: relative;
    width: 100%;
    margin-top: 7px;
}

.customer-company-picker.is-open {
    z-index: 1200;
}

.customer-company-picker > select[hidden] {
    display: none !important;
}

.customer-company-display {
    position: relative;
    display: flex !important;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
    width: 100% !important;
    min-height: 44px;
    height: auto !important;
    margin: 0 !important;
    padding: 6px 34px 6px 9px !important;
    border: 1px solid #ced8d1 !important;
    border-radius: 9px !important;
    color: var(--text) !important;
    background: #fbfcfb !important;
    text-align: left !important;
    justify-content: flex-start !important;
    align-content: center;
}

.customer-company-display > b {
    position: absolute;
    right: 12px;
    top: 50%;
    width: 7px;
    height: 7px;
    border-right: 1.5px solid #718078;
    border-bottom: 1.5px solid #718078;
    color: transparent;
    font-size: 0;
    transform: translateY(-70%) rotate(45deg);
}

.crm-customer-form.customer-form-layout select:not([multiple]) {
    height: 46px;
    min-height: 46px;
    padding-right: 36px;
    appearance: none;
    -webkit-appearance: none;
    background-image: linear-gradient(45deg,transparent 50%,#718078 50%),linear-gradient(135deg,#718078 50%,transparent 50%);
    background-position: calc(100% - 16px) 20px,calc(100% - 11px) 20px;
    background-repeat: no-repeat;
    background-size: 5px 5px,5px 5px;
}

.crm-customer-form.customer-form-layout .customer-company-display {
    height: 46px !important;
    min-height: 46px !important;
    flex-wrap: nowrap;
    overflow: hidden;
}

.customer-company-display.is-invalid {
    border-color: #d0443b !important;
    box-shadow: 0 0 0 3px rgba(208,68,59,.12);
}

.customer-company-placeholder {
    color: var(--muted);
    font-weight: 400;
}

.customer-company-chip {
    display: inline-flex;
    max-width: 100%;
    padding: 4px 7px;
    overflow: hidden;
    border-radius: 6px;
    color: #17634f;
    background: #e4f1eb;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.customer-company-menu {
    position: absolute;
    z-index: 1201;
    top: calc(100% + 6px);
    right: 0;
    left: 0;
    display: none;
    max-height: 290px;
    padding: 7px;
    overflow: hidden;
    border: 1px solid #d7e2dc;
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(20,55,42,.18);
}

.customer-company-picker.is-open .customer-company-menu {
    display: block;
}

.customer-company-search {
    width: 100% !important;
    height: 38px !important;
    margin: 0 0 6px !important;
}

.customer-company-choices {
    display: grid;
    max-height: 225px;
    overflow: auto;
}

.customer-company-choices label {
    display: flex !important;
    align-items: center;
    gap: 8px;
    margin: 0 !important;
    padding: 8px;
    border-radius: 6px;
    cursor: pointer;
}

.customer-company-choices label[hidden] {
    display: none !important;
}

.quotation-batch-price-box {
    display: grid;
    grid-template-columns: minmax(280px, 520px) minmax(220px, 1fr);
    align-items: end;
    gap: 8px 14px;
    padding: 10px 12px;
    border: 1px dashed #c8d8d0;
    border-radius: 10px;
    background: #f7faf8;
}

.quotation-batch-price-box label {
    margin: 0;
}

.quotation-batch-price-box label > span {
    display: block;
    margin-bottom: 6px;
    font-size: 13px;
    font-weight: 700;
}

.quotation-batch-price-input {
    width: 100% !important;
    min-height: 72px !important;
    margin: 0 !important;
    resize: vertical;
    font-variant-numeric: tabular-nums;
}

.quotation-batch-price-status {
    align-self: center;
    color: #66766e;
    line-height: 1.6;
}

.quotation-batch-price-status.is-error {
    color: #b42318;
}

@media (max-width: 650px) {
    .quotation-batch-price-box {
        grid-template-columns: 1fr;
    }
}

.customer-company-choices label:hover {
    background: #edf5f1;
}

.customer-company-choices input {
    flex: 0 0 16px;
    width: 16px !important;
    height: 16px !important;
    min-height: 16px !important;
    margin: 0 !important;
}

/* Customer detail and edit share the same field positions as the create form. */
.customer-detail-main .generic-field-grid,
.record-stable-detail-form .crm-customer-form.customer-form-layout {
    display: grid !important;
    grid-template-columns: repeat(12,minmax(0,1fr)) !important;
    gap: 8px 10px !important;
}

.customer-detail-main .detail-field-customer_type,
.record-stable-detail-form .customer-type-field {
    grid-column: 1/5 !important;
}

.customer-detail-main .detail-field-customer_source,
.record-stable-detail-form .customer-source-field {
    grid-column: 5/9 !important;
}

.customer-detail-main .detail-field-wechat_account,
.record-stable-detail-form .customer-wechat-account-field {
    grid-column: 9/13 !important;
}

.customer-detail-main .detail-field-customer_companies,
.record-stable-detail-form .customer-talent-field {
    grid-column: 1/4 !important;
}

.customer-detail-main .detail-field-customer_name,
.record-stable-detail-form .customer-name-field {
    grid-column: 4/7 !important;
}

.customer-detail-main .detail-field-contact_name,
.record-stable-detail-form .customer-contact-field {
    grid-column: 7/10 !important;
}

.customer-detail-main .detail-field-phone,
.record-stable-detail-form .customer-phone-field {
    grid-column: 10/13 !important;
}

.customer-detail-main .detail-field-company_name,
.record-stable-detail-form .customer-company-field {
    grid-column: 1/7 !important;
}

.customer-detail-main .detail-field-shipping_address,
.record-stable-detail-form .customer-address-field {
    grid-column: 7/13 !important;
}

/* 结算资料始终位于备注上方，并在桌面端完整占据同一行。 */
.customer-form-layout .customer-settlement-mode-field,
.customer-detail-main .detail-field-settlement_mode,
.record-stable-detail-form .customer-settlement-mode-field {
    grid-column: 1/4 !important;
}

.customer-form-layout .customer-credit-days-field,
.customer-detail-main .detail-field-credit_days,
.record-stable-detail-form .customer-credit-days-field {
    grid-column: 4/7 !important;
}

.customer-form-layout .customer-credit-limit-field,
.customer-detail-main .detail-field-credit_limit,
.record-stable-detail-form .customer-credit-limit-field {
    grid-column: 7/10 !important;
}

.customer-form-layout .customer-credit-overrun-field,
.customer-detail-main .detail-field-allow_credit_overrun,
.record-stable-detail-form .customer-credit-overrun-field {
    grid-column: 10/13 !important;
}

.crm-customer-form .customer-credit-disabled :is(input,select) {
    color: #8a9690 !important;
    cursor: not-allowed !important;
    border-color: #e1e7e4 !important;
    background: #f1f4f2 !important;
    opacity: 1 !important;
}

.customer-detail-main .detail-field-remark,
.record-stable-detail-form .customer-remark-field {
    grid-column: 1/-1 !important;
}

@media (max-width: 900px) {
    .customer-form-layout .customer-settlement-mode-field,
    .customer-form-layout .customer-credit-days-field,
    .customer-form-layout .customer-credit-limit-field,
    .customer-form-layout .customer-credit-overrun-field,
    .customer-detail-main .detail-field-settlement_mode,
    .customer-detail-main .detail-field-credit_days,
    .customer-detail-main .detail-field-credit_limit,
    .customer-detail-main .detail-field-allow_credit_overrun,
    .record-stable-detail-form .customer-settlement-mode-field,
    .record-stable-detail-form .customer-credit-days-field,
    .record-stable-detail-form .customer-credit-limit-field,
    .record-stable-detail-form .customer-credit-overrun-field {
        grid-column: span 6 !important;
    }
}

@media (max-width: 600px) {
    .customer-form-layout .customer-settlement-mode-field,
    .customer-form-layout .customer-credit-days-field,
    .customer-form-layout .customer-credit-limit-field,
    .customer-form-layout .customer-credit-overrun-field,
    .customer-detail-main .detail-field-settlement_mode,
    .customer-detail-main .detail-field-credit_days,
    .customer-detail-main .detail-field-credit_limit,
    .customer-detail-main .detail-field-allow_credit_overrun,
    .record-stable-detail-form .customer-settlement-mode-field,
    .record-stable-detail-form .customer-credit-days-field,
    .record-stable-detail-form .customer-credit-limit-field,
    .record-stable-detail-form .customer-credit-overrun-field {
        grid-column: 1/-1 !important;
    }
}

.record-stable-detail-form .customer-company-display:disabled {
    cursor: default !important;
    opacity: 1 !important;
    border-color: #e1e8e4 !important;
    color: var(--text) !important;
    background: #f7f9f8 !important;
}

.customer-detail-grade-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-width: 34px;
    height: 26px;
    padding: 0 9px;
    border-radius: 999px;
    color: #17634f;
    background: #e1f3eb;
    font-size: 12px;
    font-weight: 700;
}

.customer-detail-grade-badge.grade-b { color: #27629b; background: #e7f1fb; }
.customer-detail-grade-badge.grade-c { color: #8a6318; background: #fff2d7; }
.customer-detail-grade-badge.grade-d,
.customer-detail-grade-badge.grade-e { color: #92433c; background: #fce9e7; }
.customer-detail-grade-badge.grade-none { color: #718078; background: #edf1ef; }

@media(max-width:900px) {
    .customer-detail-main .generic-field-grid,
    .record-stable-detail-form .crm-customer-form.customer-form-layout {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    }

    .customer-detail-main .generic-field-grid > .detail-field,
    .record-stable-detail-form .crm-customer-form.customer-form-layout > label {
        grid-column: auto !important;
    }

    .customer-detail-main .detail-field-remark,
    .record-stable-detail-form .customer-remark-field {
        grid-column: 1/-1 !important;
    }
}

.sales-finance-detail-row {
    cursor: pointer;
}

.sales-finance-detail-row:hover {
    background: #f0f7f3;
}

@media(max-width:600px) {
    .customer-detail-main .generic-field-grid,
    .record-stable-detail-form .crm-customer-form.customer-form-layout {
        grid-template-columns: 1fr !important;
    }

    .customer-detail-main .generic-field-grid > .detail-field,
    .record-stable-detail-form .crm-customer-form.customer-form-layout > label {
        grid-column: 1 !important;
    }
}

/* Final mobile table guard: desktop column widths must never override cards. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        table-layout: auto !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table > tbody {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table > tbody > tr > td {
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        overflow: visible !important;
        white-space: normal !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table > tbody > tr > td[hidden],
    .workspace .table-wrap table.oa-mobile-card-table > tbody > tr > td[style*="display: none"],
    .workspace .table-wrap table.oa-mobile-card-table > tbody > tr > td[style*="display:none"],
    .workspace .table-wrap table.oa-mobile-card-table > tbody > tr > td.mobile-list-core-hidden,
    .workspace .table-wrap table.oa-mobile-card-table > tbody > tr > td.mobile-card-hidden {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table > tbody > tr > td.mobile-card-nowrap,
    .workspace .table-wrap table.oa-mobile-card-table > tbody > tr > td.mobile-card-date {
        overflow: hidden !important;
        white-space: nowrap !important;
        text-overflow: ellipsis !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table > tbody > tr > td.mobile-date-only {
        font-size: 0 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table > tbody > tr > td.mobile-date-only::after {
        content: attr(data-mobile-date);
        color: #718078;
        font-size: 12px;
        line-height: 1.45;
        white-space: nowrap;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr {
        grid-template-columns: minmax(0,1fr) !important;
        gap: 0 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td {
        grid-column: 1/-1 !important;
        grid-template-columns: 72px minmax(0,1fr) !important;
        width: 100% !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td.mobile-card-primary,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td.mobile-card-date,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td.mobile-card-status {
        display: block !important;
    }
}

@media(max-width:560px) {
    .workspace .table-wrap table.oa-mobile-card-table > tbody > tr > td {
        grid-column: 1/-1 !important;
        width: 100% !important;
    }
}

/* Keep the three mobile invoice labels and values on matching baselines. */
@media(max-width:900px) {
    html body .workspace .table-wrap > table[data-mobile-module="invoices"] > tbody > tr {
        grid-template-columns: repeat(3,minmax(0,1fr)) !important;
        column-gap: 10px !important;
        align-items: start !important;
    }

    html body .workspace .table-wrap > table[data-mobile-module="invoices"] > tbody > tr > td[data-label="状态"],
    html body .workspace .table-wrap > table[data-mobile-module="invoices"] > tbody > tr > td[data-label="应开金额"],
    html body .workspace .table-wrap > table[data-mobile-module="invoices"] > tbody > tr > td[data-label="已登记"] {
        display: grid !important;
        grid-template-rows: 16px 26px !important;
        align-content: start !important;
        align-items: center !important;
        gap: 3px !important;
        min-width: 0 !important;
        height: 45px !important;
        padding: 0 !important;
        overflow: hidden !important;
        border: 0 !important;
        text-align: left !important;
    }

    html body .workspace .table-wrap > table[data-mobile-module="invoices"] > tbody > tr > td[data-label="状态"]::before,
    html body .workspace .table-wrap > table[data-mobile-module="invoices"] > tbody > tr > td[data-label="应开金额"]::before,
    html body .workspace .table-wrap > table[data-mobile-module="invoices"] > tbody > tr > td[data-label="已登记"]::before {
        display: flex !important;
        grid-row: 1 !important;
        align-items: center !important;
        width: 100% !important;
        height: 16px !important;
        margin: 0 !important;
        line-height: 16px !important;
        text-align: left !important;
    }

    html body .workspace .table-wrap > table[data-mobile-module="invoices"] > tbody > tr > td > .mobile-invoice-value {
        display: flex !important;
        grid-row: 2 !important;
        align-items: center !important;
        justify-content: flex-start !important;
        min-width: 0 !important;
        min-height: 26px !important;
        overflow: hidden !important;
        line-height: 26px !important;
        text-align: left !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    html body .workspace .table-wrap > table[data-mobile-module="invoices"] > tbody > tr > td > .mobile-invoice-value > .tag {
        margin: 0 !important;
        line-height: 18px !important;
    }
}

/* Sales-order child tables keep order items first and fit the detail width. */
html body .sales-finance-panels .table-wrap > table.sales-order-items-table {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    table-layout: fixed !important;
}

html body .sales-order-items-table th,
html body .sales-order-items-table td {
    box-sizing: border-box;
    min-width: 0 !important;
    padding-right: 8px !important;
    padding-left: 8px !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

html body .sales-order-items-table th:nth-child(1),
html body .sales-order-items-table td:nth-child(1) {
    width: 24% !important;
}

html body .sales-order-items-table th:nth-child(2),
html body .sales-order-items-table td:nth-child(2) {
    width: 11% !important;
}

html body .sales-order-items-table th:nth-child(3),
html body .sales-order-items-table td:nth-child(3) {
    width: 8% !important;
}

html body .sales-order-items-table th:nth-child(4),
html body .sales-order-items-table td:nth-child(4) {
    width: 7% !important;
}

html body .sales-order-items-table th:nth-child(5),
html body .sales-order-items-table td:nth-child(5) {
    width: 13% !important;
}

html body .sales-order-items-table th:nth-child(6),
html body .sales-order-items-table td:nth-child(6) {
    width: 37% !important;
}

@media(max-width:620px) {
    html body .sales-order-items-table th,
    html body .sales-order-items-table td {
        padding-right: 5px !important;
        padding-left: 5px !important;
        font-size: 12px !important;
    }

    html body .sales-order-items-table th:nth-child(1),
    html body .sales-order-items-table td:nth-child(1) {
        width: 24% !important;
    }

    html body .sales-order-items-table th:nth-child(2),
    html body .sales-order-items-table td:nth-child(2) {
        width: 11% !important;
    }
}

/* Lists with desktop fixed-column presets always use stable full-width cards on mobile. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table:is(
        [data-mobile-module="incomes"],
        [data-mobile-module="expenses"],
        [data-mobile-module="procurement-orders"],
        [data-mobile-module="after-sales"],
        [data-mobile-module="inventory"],
        [data-mobile-module="packaging-inventory"],
        [data-mobile-module="media-sims"]
    ) {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        table-layout: auto !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table:is(
        [data-mobile-module="incomes"],
        [data-mobile-module="expenses"],
        [data-mobile-module="procurement-orders"],
        [data-mobile-module="after-sales"],
        [data-mobile-module="inventory"],
        [data-mobile-module="packaging-inventory"],
        [data-mobile-module="media-sims"]
    ) > tbody > tr {
        grid-template-columns: minmax(0,1fr) !important;
        gap: 0 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table:is(
        [data-mobile-module="incomes"],
        [data-mobile-module="expenses"],
        [data-mobile-module="procurement-orders"],
        [data-mobile-module="after-sales"],
        [data-mobile-module="inventory"],
        [data-mobile-module="packaging-inventory"],
        [data-mobile-module="media-sims"]
    ) > tbody > tr > td {
        grid-column: 1/-1 !important;
        grid-template-columns: 72px minmax(0,1fr) !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        overflow: visible !important;
        white-space: normal !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table:is(
        [data-mobile-module="incomes"],
        [data-mobile-module="expenses"],
        [data-mobile-module="procurement-orders"],
        [data-mobile-module="after-sales"],
        [data-mobile-module="inventory"],
        [data-mobile-module="packaging-inventory"],
        [data-mobile-module="media-sims"]
    ) > tbody > tr > td.mobile-card-primary,
    .workspace .table-wrap table.oa-mobile-card-table:is(
        [data-mobile-module="incomes"],
        [data-mobile-module="expenses"],
        [data-mobile-module="procurement-orders"],
        [data-mobile-module="after-sales"],
        [data-mobile-module="inventory"],
        [data-mobile-module="packaging-inventory"],
        [data-mobile-module="media-sims"]
    ) > tbody > tr > td.mobile-card-date,
    .workspace .table-wrap table.oa-mobile-card-table:is(
        [data-mobile-module="incomes"],
        [data-mobile-module="expenses"],
        [data-mobile-module="procurement-orders"],
        [data-mobile-module="after-sales"],
        [data-mobile-module="inventory"],
        [data-mobile-module="packaging-inventory"],
        [data-mobile-module="media-sims"]
    ) > tbody > tr > td.mobile-card-status {
        display: block !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table:is(
        [data-mobile-module="incomes"],
        [data-mobile-module="expenses"],
        [data-mobile-module="procurement-orders"],
        [data-mobile-module="after-sales"],
        [data-mobile-module="inventory"],
        [data-mobile-module="packaging-inventory"],
        [data-mobile-module="media-sims"]
    ) > tbody > tr > td.mobile-card-nowrap,
    .workspace .table-wrap table.oa-mobile-card-table:is(
        [data-mobile-module="incomes"],
        [data-mobile-module="expenses"],
        [data-mobile-module="procurement-orders"],
        [data-mobile-module="after-sales"],
        [data-mobile-module="inventory"],
        [data-mobile-module="packaging-inventory"],
        [data-mobile-module="media-sims"]
    ) > tbody > tr > td.mobile-card-date {
        overflow: hidden !important;
        white-space: nowrap !important;
        text-overflow: ellipsis !important;
    }
}

/* Mobile employee cards: two compact rows with name and status always visible. */
@media(max-width:900px) {
    .workspace .table-wrap table.employee-mobile-card-table > tbody > tr {
        position: relative !important;
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        grid-template-rows: auto auto !important;
        gap: 5px 10px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.employee-mobile-card-table > tbody > tr > td[data-label="姓名"],
    .workspace .table-wrap table.employee-mobile-card-table > tbody > tr > td[data-label="状态"],
    .workspace .table-wrap table.employee-mobile-card-table > tbody > tr > td[data-label="所属公司"],
    .workspace .table-wrap table.employee-mobile-card-table > tbody > tr > td[data-label="未支付工资"] {
        position: static !important;
        order: initial !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 2px 0 !important;
        border: 0 !important;
        line-height: 1.4 !important;
    }

    .workspace .table-wrap table.employee-mobile-card-table > tbody > tr > td[data-label="姓名"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-self: center !important;
        overflow: hidden !important;
        font-size: 16px !important;
        font-weight: 750 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.employee-mobile-card-table > tbody > tr > td[data-label="姓名"]::before,
    .workspace .table-wrap table.employee-mobile-card-table > tbody > tr > td[data-label="状态"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.employee-mobile-card-table > tbody > tr > td[data-label="状态"] {
        display: block !important;
        grid-column: 2 !important;
        grid-row: 1 !important;
        align-self: center !important;
        justify-self: end !important;
        width: auto !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.employee-mobile-card-table > tbody > tr > td[data-label="所属公司"],
    .workspace .table-wrap table.employee-mobile-card-table > tbody > tr > td[data-label="未支付工资"] {
        display: flex !important;
        grid-row: 2 !important;
        align-items: center !important;
        gap: 4px !important;
        width: auto !important;
        font-size: 12px !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.employee-mobile-card-table > tbody > tr > td[data-label="所属公司"] {
        grid-column: 1 !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    .workspace .table-wrap table.employee-mobile-card-table > tbody > tr > td[data-label="未支付工资"] {
        grid-column: 2 !important;
        justify-self: end !important;
    }

    .workspace .table-wrap table.employee-mobile-card-table > tbody > tr > td[data-label="所属公司"]::before,
    .workspace .table-wrap table.employee-mobile-card-table > tbody > tr > td[data-label="未支付工资"]::before {
        flex: 0 0 auto !important;
        margin: 0 !important;
        font-size: 11px !important;
    }
}

/* Mobile temporary-work cards: employee/date header, then project, wage and remark. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        gap: 0 10px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td[data-label="结算状态"] {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td[data-label="员工"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        order: initial !important;
        align-self: center !important;
        min-width: 0 !important;
        width: 100% !important;
        padding: 2px 0 8px !important;
        overflow: hidden !important;
        border: 0 !important;
        font-size: 0 !important;
        font-weight: 750 !important;
        line-height: 1.45 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td[data-label="员工"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td[data-label="员工"]::after {
        content: attr(data-mobile-employee-name);
        color: #263b32;
        font-size: 15px;
        font-weight: 750;
        line-height: 1.45;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td[data-label="日期"] {
        display: block !important;
        grid-column: 2 !important;
        grid-row: 1 !important;
        order: initial !important;
        align-self: center !important;
        justify-self: end !important;
        width: auto !important;
        padding: 2px 0 8px !important;
        overflow: hidden !important;
        border: 0 !important;
        color: #718078 !important;
        font-size: 0 !important;
        text-align: right !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td[data-label="日期"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td[data-label="日期"]::after {
        content: attr(data-mobile-date);
        color: #718078;
        font-size: 12px;
        font-weight: 500;
        line-height: 1.45;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td[data-label="项目"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td[data-label="工资"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td[data-label="备注"] {
        display: grid !important;
        grid-column: 1/-1 !important;
        grid-template-columns: 48px minmax(0,1fr) !important;
        gap: 5px !important;
        align-items: start !important;
        width: 100% !important;
        padding: 7px 0 !important;
        border: 0 !important;
        border-top: 1px dashed #e5ebe7 !important;
        font-size: 12px !important;
        line-height: 1.45 !important;
        text-align: left !important;
        white-space: normal !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td[data-label="项目"] {
        display: block !important;
        grid-row: 2 !important;
        grid-template-columns: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td[data-label="项目"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td[data-label="项目"] > .mobile-temp-project-value {
        display: block !important;
        min-width: 0 !important;
        width: 100% !important;
        white-space: normal !important;
        overflow-wrap: break-word !important;
        word-break: normal !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td[data-label="工资"] {
        display: block !important;
        grid-row: 3 !important;
        grid-template-columns: none !important;
        overflow: visible !important;
        font-size: 0 !important;
        text-align: left !important;
        white-space: normal !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td[data-label="工资"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td[data-label="工资"]::after {
        content: attr(data-mobile-temp-wage-summary);
        color: #2f4038;
        font-size: 12px;
        font-weight: 650;
        line-height: 1.45;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td[data-label="备注"] {
        display: block !important;
        grid-row: 4 !important;
        grid-template-columns: none !important;
        padding-bottom: 2px !important;
        text-align: left !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-work"] > tbody > tr > td[data-label="备注"]::before {
        display: none !important;
    }
}

/* Mobile payroll list: two equally sized fields on every row. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-payroll"] > tbody > tr {
        display: grid !important;
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
        gap: 0 12px !important;
        width: 100% !important;
        padding: 9px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-payroll"] > tbody > tr > td {
        display: block !important;
        grid-column: auto !important;
        order: initial !important;
        min-width: 0 !important;
        width: 100% !important;
        padding: 7px 0 !important;
        overflow: hidden !important;
        border: 0 !important;
        border-bottom: 1px dashed #e5ebe7 !important;
        font-size: 12px !important;
        line-height: 1.45 !important;
        text-align: left !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-payroll"] > tbody > tr > td[hidden],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-payroll"] > tbody > tr > td[style*="display: none"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-payroll"] > tbody > tr > td[style*="display:none"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-payroll"] > tbody > tr > td.mobile-list-core-hidden,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-payroll"] > tbody > tr > td.mobile-card-hidden {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-payroll"] > tbody > tr > td[colspan] {
        display: block !important;
        grid-column: 1/-1 !important;
        text-align: center !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-payroll"] > tbody > tr > td::before {
        display: block !important;
        width: auto !important;
        margin: 0 0 2px !important;
        color: #7a8981 !important;
        font-size: 11px !important;
        font-weight: 700 !important;
        line-height: 1.35 !important;
        text-align: left !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-payroll"] > tbody > tr > td.mobile-card-primary,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-payroll"] > tbody > tr > td.mobile-card-date,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-payroll"] > tbody > tr > td.mobile-card-status {
        display: block !important;
        grid-column: auto !important;
        order: initial !important;
        padding: 7px 0 !important;
        border-bottom: 1px dashed #e5ebe7 !important;
        color: #2f4038 !important;
        font-size: 12px !important;
        font-weight: 500 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-payroll"] > tbody > tr > td.mobile-card-primary::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-payroll"] > tbody > tr > td.mobile-card-date::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="temp-payroll"] > tbody > tr > td.mobile-card-status::before {
        display: block !important;
    }
}

/* Mobile piecework-standard cards: process and price share the first row. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework-standards"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        gap: 0 10px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework-standards"] > tbody > tr > td[data-label="工序"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        order: initial !important;
        align-self: center !important;
        min-width: 0 !important;
        width: 100% !important;
        padding: 3px 0 8px !important;
        overflow: hidden !important;
        border: 0 !important;
        font-size: 15px !important;
        font-weight: 750 !important;
        line-height: 1.45 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework-standards"] > tbody > tr > td[data-label="工序"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework-standards"] > tbody > tr > td[data-label="单价"] {
        display: flex !important;
        grid-column: 2 !important;
        grid-row: 1 !important;
        order: initial !important;
        align-items: center !important;
        align-self: center !important;
        justify-self: end !important;
        gap: 4px !important;
        width: auto !important;
        padding: 3px 0 8px !important;
        overflow: visible !important;
        border: 0 !important;
        font-size: 13px !important;
        font-variant-numeric: tabular-nums;
        text-align: right !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework-standards"] > tbody > tr > td[data-label="单价"]::before {
        display: inline !important;
        width: auto !important;
        margin: 0 !important;
        font-size: 11px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework-standards"] > tbody > tr > td[data-label="备注"] {
        display: grid !important;
        grid-column: 1/-1 !important;
        grid-row: 2 !important;
        grid-template-columns: 38px minmax(0,1fr) !important;
        gap: 5px !important;
        align-items: start !important;
        width: 100% !important;
        padding: 8px 0 2px !important;
        overflow: visible !important;
        border: 0 !important;
        border-top: 1px dashed #e5ebe7 !important;
        font-size: 12px !important;
        line-height: 1.45 !important;
        text-align: left !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
    }
}

/* Mobile piecework-record cards: employee/date, project, then one calculation line. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        gap: 0 10px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework"] > tbody > tr > td[data-label="员工"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        order: initial !important;
        align-self: center !important;
        min-width: 0 !important;
        width: 100% !important;
        padding: 2px 0 8px !important;
        overflow: hidden !important;
        border: 0 !important;
        font-size: 0 !important;
        font-weight: 750 !important;
        line-height: 1.45 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework"] > tbody > tr > td[data-label="员工"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework"] > tbody > tr > td[data-label="员工"]::after {
        content: attr(data-mobile-employee-name);
        color: #263b32;
        font-size: 15px;
        font-weight: 750;
        line-height: 1.45;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework"] > tbody > tr > td[data-label="日期"] {
        display: block !important;
        grid-column: 2 !important;
        grid-row: 1 !important;
        order: initial !important;
        align-self: center !important;
        justify-self: end !important;
        width: auto !important;
        padding: 2px 0 8px !important;
        overflow: hidden !important;
        border: 0 !important;
        color: #718078 !important;
        font-size: 0 !important;
        text-align: right !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework"] > tbody > tr > td[data-label="日期"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework"] > tbody > tr > td[data-label="日期"]::after {
        content: attr(data-mobile-date);
        color: #718078;
        font-size: 12px;
        font-weight: 500;
        line-height: 1.45;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework"] > tbody > tr > td[data-label="项目"] {
        display: block !important;
        grid-column: 1/-1 !important;
        grid-row: 2 !important;
        grid-template-columns: none !important;
        gap: 5px !important;
        align-items: start !important;
        width: 100% !important;
        padding: 7px 0 !important;
        overflow: visible !important;
        border: 0 !important;
        border-top: 1px dashed #e5ebe7 !important;
        font-size: 12px !important;
        line-height: 1.45 !important;
        text-align: left !important;
        white-space: normal !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework"] > tbody > tr > td[data-label="项目"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework"] > tbody > tr > td[data-label="项目"] > .mobile-piecework-project-value {
        display: block !important;
        min-width: 0 !important;
        width: 100% !important;
        overflow: visible !important;
        text-overflow: clip !important;
        white-space: normal !important;
        overflow-wrap: break-word !important;
        word-break: normal !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework"] > tbody > tr > td[data-label="工序"] {
        display: block !important;
        grid-column: 1/-1 !important;
        grid-row: 3 !important;
        order: initial !important;
        width: 100% !important;
        padding: 8px 0 2px !important;
        overflow: hidden !important;
        border: 0 !important;
        border-top: 1px dashed #e5ebe7 !important;
        font-size: 0 !important;
        line-height: 1.45 !important;
        text-align: left !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework"] > tbody > tr > td[data-label="工序"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework"] > tbody > tr > td[data-label="工序"]::after {
        content: attr(data-mobile-piecework-summary);
        color: #2f4038;
        font-size: 12px;
        font-weight: 650;
        line-height: 1.45;
        white-space: nowrap;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework"] > tbody > tr > td[data-label="单价"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework"] > tbody > tr > td[data-label="数量"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="piecework"] > tbody > tr > td[data-label="工资"] {
        display: none !important;
    }
}

/* Mobile financial-account cards: one line with name and balance. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="accounts"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        gap: 10px !important;
        align-items: center !important;
        width: 100% !important;
        min-height: 48px !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="accounts"] > tbody > tr > td[data-label="账号名称"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        order: initial !important;
        align-self: center !important;
        min-width: 0 !important;
        width: 100% !important;
        padding: 0 !important;
        overflow: hidden !important;
        border: 0 !important;
        color: #263b32 !important;
        font-size: 15px !important;
        font-weight: 750 !important;
        line-height: 1.45 !important;
        text-align: left !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="accounts"] > tbody > tr > td[data-label="账户余额"] {
        display: block !important;
        grid-column: 2 !important;
        grid-row: 1 !important;
        order: initial !important;
        align-self: center !important;
        justify-self: end !important;
        width: auto !important;
        padding: 0 !important;
        overflow: visible !important;
        border: 0 !important;
        color: #17634f !important;
        font-size: 14px !important;
        font-weight: 750 !important;
        font-variant-numeric: tabular-nums;
        line-height: 1.45 !important;
        text-align: right !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="accounts"] > tbody > tr > td[data-label="账号名称"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="accounts"] > tbody > tr > td[data-label="账户余额"]::before {
        display: none !important;
    }
}

/* Mobile income cards: four fixed information rows. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        gap: 0 10px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="项目订单"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="财务审核"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="日期时间"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td:is([data-label="开票"],[data-label="开票状态"],[data-label="发票状态"]),
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="进账账号"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="金额"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="款项说明"] {
        order: initial !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        border: 0 !important;
        line-height: 1.45 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="项目订单"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-self: center !important;
        width: 100% !important;
        padding: 2px 0 8px !important;
        overflow: hidden !important;
        font-size: 14px !important;
        font-weight: 750 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="财务审核"] {
        display: block !important;
        grid-column: 2 !important;
        grid-row: 1 !important;
        align-self: center !important;
        justify-self: end !important;
        width: auto !important;
        padding: 2px 0 8px !important;
        overflow: visible !important;
        text-align: right !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="日期时间"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td:is([data-label="开票"],[data-label="开票状态"],[data-label="发票状态"]) {
        display: block !important;
        grid-row: 2 !important;
        width: auto !important;
        padding: 7px 0 !important;
        overflow: hidden !important;
        border-top: 1px dashed #e5ebe7 !important;
        color: #718078 !important;
        font-size: 12px !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="日期时间"] {
        grid-column: 1 !important;
        font-size: 0 !important;
        text-align: left !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="日期时间"]::after {
        content: attr(data-mobile-date);
        color: #718078;
        font-size: 12px;
        line-height: 1.45;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td:is([data-label="开票"],[data-label="开票状态"],[data-label="发票状态"]) {
        grid-column: 2 !important;
        justify-self: end !important;
        text-align: right !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="进账账号"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="金额"] {
        display: block !important;
        grid-row: 3 !important;
        width: auto !important;
        padding: 7px 0 !important;
        overflow: hidden !important;
        border-top: 1px dashed #e5ebe7 !important;
        font-size: 12px !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="进账账号"] {
        grid-column: 1 !important;
        text-align: left !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="金额"] {
        grid-column: 2 !important;
        justify-self: end !important;
        color: #17634f !important;
        font-size: 13px !important;
        font-weight: 750 !important;
        text-align: right !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="款项说明"] {
        display: block !important;
        grid-column: 1/-1 !important;
        grid-row: 4 !important;
        grid-template-columns: none !important;
        gap: 5px !important;
        align-items: start !important;
        width: 100% !important;
        padding: 7px 0 2px !important;
        overflow: visible !important;
        border-top: 1px dashed #e5ebe7 !important;
        font-size: 12px !important;
        text-align: left !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="款项说明"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="款项说明"] > .mobile-income-description-value {
        display: block !important;
        min-width: 0 !important;
        width: 100% !important;
        white-space: normal !important;
        overflow-wrap: break-word !important;
        word-break: normal !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="项目订单"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="财务审核"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="日期时间"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td:is([data-label="开票"],[data-label="开票状态"],[data-label="发票状态"])::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="进账账号"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="incomes"] > tbody > tr > td[data-label="金额"]::before {
        display: none !important;
    }
}

/* Mobile expense cards: four fixed information rows. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        gap: 0 10px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td[data-label="项目"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td:is([data-label="状态"],[data-label="审核"]),
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td[data-label="日期时间"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td:is([data-label="开票"],[data-label="开票状态"],[data-label="发票状态"]),
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td[data-label="支出账号"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td[data-label="金额"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td[data-label="款项说明"] {
        order: initial !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        border: 0 !important;
        line-height: 1.45 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td[data-label="项目"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-self: center !important;
        width: 100% !important;
        padding: 2px 0 8px !important;
        overflow: hidden !important;
        font-size: 14px !important;
        font-weight: 750 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td:is([data-label="状态"],[data-label="审核"]) {
        display: block !important;
        grid-column: 2 !important;
        grid-row: 1 !important;
        align-self: center !important;
        justify-self: end !important;
        width: auto !important;
        padding: 2px 0 8px !important;
        overflow: visible !important;
        text-align: right !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td[data-label="日期时间"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td:is([data-label="开票"],[data-label="开票状态"],[data-label="发票状态"]) {
        display: block !important;
        grid-row: 2 !important;
        width: auto !important;
        padding: 7px 0 !important;
        overflow: hidden !important;
        border-top: 1px dashed #e5ebe7 !important;
        color: #718078 !important;
        font-size: 12px !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td[data-label="日期时间"] {
        grid-column: 1 !important;
        font-size: 0 !important;
        text-align: left !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td[data-label="日期时间"]::after {
        content: attr(data-mobile-date);
        color: #718078;
        font-size: 12px;
        line-height: 1.45;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td:is([data-label="开票"],[data-label="开票状态"],[data-label="发票状态"]) {
        grid-column: 2 !important;
        justify-self: end !important;
        text-align: right !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td[data-label="支出账号"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td[data-label="金额"] {
        display: block !important;
        grid-row: 3 !important;
        width: auto !important;
        padding: 7px 0 !important;
        overflow: hidden !important;
        border-top: 1px dashed #e5ebe7 !important;
        font-size: 12px !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td[data-label="支出账号"] {
        grid-column: 1 !important;
        text-align: left !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td[data-label="金额"] {
        grid-column: 2 !important;
        justify-self: end !important;
        color: #a0443c !important;
        font-size: 13px !important;
        font-weight: 750 !important;
        text-align: right !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td[data-label="款项说明"] {
        display: grid !important;
        grid-column: 1/-1 !important;
        grid-row: 4 !important;
        grid-template-columns: 58px minmax(0,1fr) !important;
        gap: 5px !important;
        align-items: start !important;
        width: 100% !important;
        padding: 7px 0 2px !important;
        overflow: visible !important;
        border-top: 1px dashed #e5ebe7 !important;
        font-size: 12px !important;
        text-align: left !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td[data-label="项目"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td:is([data-label="状态"],[data-label="审核"])::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td[data-label="日期时间"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td:is([data-label="开票"],[data-label="开票状态"],[data-label="发票状态"])::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td[data-label="支出账号"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="expenses"] > tbody > tr > td[data-label="金额"]::before {
        display: none !important;
    }
}

/* Mobile petty-cash cards: date, status/amount, and transfer accounts. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="petty-cash"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important;
        gap: 0 10px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="petty-cash"] > tbody > tr > td[data-label="日期时间"] {
        display: block !important;
        grid-column: 1/-1 !important;
        grid-row: 1 !important;
        order: initial !important;
        width: 100% !important;
        padding: 2px 0 8px !important;
        overflow: hidden !important;
        border: 0 !important;
        color: #718078 !important;
        font-size: 0 !important;
        font-weight: 500 !important;
        line-height: 1.45 !important;
        text-align: left !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="petty-cash"] > tbody > tr > td[data-label="日期时间"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="petty-cash"] > tbody > tr > td[data-label="日期时间"]::after {
        content: attr(data-mobile-date);
        color: #718078;
        font-size: 12px;
        line-height: 1.45;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="petty-cash"] > tbody > tr > td[data-label="状态"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="petty-cash"] > tbody > tr > td[data-label="金额"] {
        display: block !important;
        grid-row: 2 !important;
        order: initial !important;
        width: auto !important;
        padding: 7px 0 !important;
        overflow: visible !important;
        border: 0 !important;
        border-top: 1px dashed #e5ebe7 !important;
        font-size: 12px !important;
        line-height: 1.45 !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="petty-cash"] > tbody > tr > td[data-label="状态"] {
        grid-column: 1 !important;
        justify-self: start !important;
        text-align: left !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="petty-cash"] > tbody > tr > td[data-label="金额"] {
        grid-column: 2 !important;
        justify-self: end !important;
        color: #17634f !important;
        font-size: 13px !important;
        font-weight: 750 !important;
        font-variant-numeric: tabular-nums;
        text-align: right !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="petty-cash"] > tbody > tr > td[data-label="状态"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="petty-cash"] > tbody > tr > td[data-label="金额"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="petty-cash"] > tbody > tr > td[data-label="支出账号"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="petty-cash"] > tbody > tr > td[data-label="收入账号"] {
        display: flex !important;
        grid-row: 3 !important;
        order: initial !important;
        align-items: center !important;
        gap: 4px !important;
        min-width: 0 !important;
        width: 100% !important;
        padding: 7px 0 2px !important;
        overflow: hidden !important;
        border: 0 !important;
        border-top: 1px dashed #e5ebe7 !important;
        font-size: 12px !important;
        line-height: 1.45 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="petty-cash"] > tbody > tr > td[data-label="支出账号"] {
        grid-column: 1 !important;
        text-align: left !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="petty-cash"] > tbody > tr > td[data-label="收入账号"] {
        grid-column: 2 !important;
        justify-content: flex-end !important;
        text-align: right !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="petty-cash"] > tbody > tr > td[data-label="支出账号"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="petty-cash"] > tbody > tr > td[data-label="收入账号"]::before {
        flex: 0 0 auto !important;
        width: auto !important;
        margin: 0 !important;
        font-size: 11px !important;
    }
}

/* Mobile invoice cards: status, required amount and registered amount on one row. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="invoices"] > tbody > tr {
        display: grid !important;
        grid-template-columns: repeat(3,minmax(0,1fr)) !important;
        gap: 8px !important;
        align-items: center !important;
        width: 100% !important;
        padding: 9px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="invoices"] > tbody > tr > td[data-label="状态"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="invoices"] > tbody > tr > td[data-label="应开金额"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="invoices"] > tbody > tr > td[data-label="已登记"] {
        display: block !important;
        grid-row: 1 !important;
        order: initial !important;
        align-self: center !important;
        min-width: 0 !important;
        width: 100% !important;
        padding: 2px 0 !important;
        overflow: hidden !important;
        border: 0 !important;
        font-size: 12px !important;
        font-variant-numeric: tabular-nums;
        line-height: 1.4 !important;
        text-align: left !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="invoices"] > tbody > tr > td[data-label="状态"] {
        grid-column: 1 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="invoices"] > tbody > tr > td[data-label="应开金额"] {
        grid-column: 2 !important;
        font-weight: 750 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="invoices"] > tbody > tr > td[data-label="已登记"] {
        grid-column: 3 !important;
        color: #17634f !important;
        font-weight: 750 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="invoices"] > tbody > tr > td[data-label="状态"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="invoices"] > tbody > tr > td[data-label="应开金额"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="invoices"] > tbody > tr > td[data-label="已登记"]::before {
        display: block !important;
        width: auto !important;
        margin: 0 0 2px !important;
        color: #7a8981 !important;
        font-size: 10px !important;
        font-weight: 650 !important;
        line-height: 1.25 !important;
        text-align: left !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="invoices"] > tbody > tr > td[data-label="操作"] {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="invoices"] > tbody > tr > td[colspan] {
        display: block !important;
        grid-column: 1/-1 !important;
        text-align: center !important;
    }
}

/* Mobile customer cards: name, grade and source on the first row; activity on the second. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customers"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto auto !important;
        grid-template-rows: auto auto !important;
        gap: 7px 9px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customers"] > tbody > tr > td[data-label="名称"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customers"] > tbody > tr > td[data-label="等级"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customers"] > tbody > tr > td[data-label="来源"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customers"] > tbody > tr > td[data-label="客户动态"] {
        position: static !important;
        order: initial !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        border: 0 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customers"] > tbody > tr > td[data-label="名称"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-self: center !important;
        width: 100% !important;
        padding: 2px 0 !important;
        overflow: hidden !important;
        font-size: 15px !important;
        font-weight: 750 !important;
        line-height: 1.4 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customers"] > tbody > tr > td[data-label="等级"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customers"] > tbody > tr > td[data-label="来源"] {
        display: block !important;
        grid-row: 1 !important;
        align-self: center !important;
        justify-self: end !important;
        width: auto !important;
        padding: 2px 0 !important;
        color: #60736a !important;
        font-size: 12px !important;
        line-height: 1.4 !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customers"] > tbody > tr > td[data-label="等级"] {
        grid-column: 2 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customers"] > tbody > tr > td[data-label="来源"] {
        grid-column: 3 !important;
        padding: 4px 8px !important;
        border-radius: 999px !important;
        background: #eef3f0 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customers"] > tbody > tr > td[data-label="客户动态"] {
        display: block !important;
        grid-column: 1/-1 !important;
        grid-row: 2 !important;
        width: 100% !important;
        padding: 8px 0 1px !important;
        border-top: 1px solid #edf1ef !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customers"] > tbody > tr > td[data-label="名称"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customers"] > tbody > tr > td[data-label="等级"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customers"] > tbody > tr > td[data-label="来源"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customers"] > tbody > tr > td[data-label="客户动态"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customers"] .customer-dynamic-summary {
        width: 100%;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customers"] > tbody > tr > td[colspan] {
        display: block !important;
        grid-column: 1/-1 !important;
        text-align: center !important;
    }
}

/* Mobile customer quotation cards: customer first, date and product count second. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customer-prices"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        grid-template-rows: auto auto !important;
        gap: 5px 12px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="客户"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="报价日期"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="产品数量"] {
        position: static !important;
        order: initial !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        border: 0 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="客户"] {
        display: block !important;
        grid-column: 1/-1 !important;
        grid-row: 1 !important;
        width: 100% !important;
        padding: 2px 0 7px !important;
        overflow: hidden !important;
        border-bottom: 1px solid #edf1ef !important;
        color: #263b32 !important;
        font-size: 15px !important;
        font-weight: 750 !important;
        line-height: 1.4 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="报价日期"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="产品数量"] {
        display: flex !important;
        grid-row: 2 !important;
        align-items: center !important;
        gap: 4px !important;
        width: auto !important;
        padding: 2px 0 !important;
        color: #60736a !important;
        font-size: 12px !important;
        line-height: 1.4 !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="报价日期"] {
        grid-column: 1 !important;
        justify-self: start !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="产品数量"] {
        grid-column: 2 !important;
        justify-self: end !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="报价日期"].mobile-date-only {
        font-size: 0 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="客户"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="报价日期"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="产品数量"]::before {
        display: inline !important;
        width: auto !important;
        margin: 0 !important;
        color: #7a8981 !important;
        font-size: 11px !important;
        line-height: 1.4 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="报价日期"].mobile-date-only::after {
        color: #60736a !important;
        font-size: 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="customer-prices"] > tbody > tr > td[colspan] {
        display: block !important;
        grid-column: 1/-1 !important;
        text-align: center !important;
    }
}

/* Mobile project cards: project/category first, company/customer second. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="orders"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        grid-template-rows: auto auto !important;
        gap: 5px 12px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="orders"] > tbody > tr > td[data-label="名称"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="orders"] > tbody > tr > td[data-label="类别"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="orders"] > tbody > tr > td[data-label="公司"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="orders"] > tbody > tr > td[data-label="客户"] {
        position: static !important;
        order: initial !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        border: 0 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="orders"] > tbody > tr > td[data-label="名称"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-self: center !important;
        width: 100% !important;
        padding: 2px 0 7px !important;
        overflow: hidden !important;
        font-size: 15px !important;
        font-weight: 750 !important;
        line-height: 1.4 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="orders"] > tbody > tr > td[data-label="类别"] {
        display: block !important;
        grid-column: 2 !important;
        grid-row: 1 !important;
        align-self: center !important;
        justify-self: end !important;
        width: auto !important;
        padding: 4px 8px !important;
        border-radius: 999px !important;
        color: #17634f !important;
        background: #e8f3ee !important;
        font-size: 12px !important;
        line-height: 1.35 !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="orders"] > tbody > tr > td[data-label="公司"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="orders"] > tbody > tr > td[data-label="客户"] {
        display: flex !important;
        grid-row: 2 !important;
        align-items: center !important;
        gap: 4px !important;
        width: auto !important;
        padding: 7px 0 1px !important;
        border-top: 1px solid #edf1ef !important;
        color: #60736a !important;
        font-size: 12px !important;
        line-height: 1.4 !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="orders"] > tbody > tr > td[data-label="公司"] {
        grid-column: 1 !important;
        justify-self: stretch !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="orders"] > tbody > tr > td[data-label="客户"] {
        grid-column: 2 !important;
        justify-self: end !important;
        padding-left: 10px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="orders"] > tbody > tr > td[data-label="名称"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="orders"] > tbody > tr > td[data-label="类别"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="orders"] > tbody > tr > td[data-label="公司"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="orders"] > tbody > tr > td[data-label="客户"]::before {
        display: inline !important;
        width: auto !important;
        margin: 0 !important;
        color: #7a8981 !important;
        font-size: 11px !important;
        line-height: 1.4 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="orders"] > tbody > tr > td[colspan] {
        display: block !important;
        grid-column: 1/-1 !important;
        text-align: center !important;
    }
}

/* Mobile procurement order cards: order/date, project/quantity, amount/payment. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        grid-template-rows: auto auto auto !important;
        gap: 5px 12px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="订单号"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="日期"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="项目"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="总数量"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="总计金额"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="支付情况"] {
        position: static !important;
        order: initial !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        border: 0 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="订单号"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-self: center !important;
        width: 100% !important;
        padding: 2px 0 7px !important;
        overflow: hidden !important;
        color: #263b32 !important;
        font-size: 15px !important;
        font-weight: 750 !important;
        line-height: 1.4 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="日期"] {
        display: block !important;
        grid-column: 2 !important;
        grid-row: 1 !important;
        align-self: center !important;
        justify-self: end !important;
        width: auto !important;
        padding: 2px 0 7px !important;
        overflow: hidden !important;
        color: #718078 !important;
        font-size: 12px !important;
        line-height: 1.4 !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="日期"].mobile-date-only {
        font-size: 0 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="项目"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="总数量"] {
        display: block !important;
        grid-row: 2 !important;
        min-width: 0 !important;
        padding: 4px 0 !important;
        overflow: hidden !important;
        color: #5f6f67 !important;
        font-size: 12px !important;
        line-height: 1.45 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="项目"] {
        grid-column: 1 !important;
        justify-self: stretch !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="总数量"] {
        grid-column: 2 !important;
        justify-self: end !important;
        padding-left: 10px !important;
        text-align: right !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="总计金额"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="支付情况"] {
        display: block !important;
        grid-row: 3 !important;
        width: auto !important;
        padding: 7px 0 1px !important;
        border-top: 1px solid #edf1ef !important;
        font-size: 12px !important;
        line-height: 1.4 !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="总计金额"] {
        grid-column: 1 !important;
        justify-self: stretch !important;
        color: #17634f !important;
        font-size: 14px !important;
        font-weight: 750 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="支付情况"] {
        grid-column: 2 !important;
        justify-self: end !important;
        padding-left: 10px !important;
        text-align: right !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="订单号"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="日期"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="支付情况"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="项目"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="总数量"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="总计金额"]::before {
        display: inline !important;
        width: auto !important;
        margin: 0 4px 0 0 !important;
        color: #7a8981 !important;
        font-size: 11px !important;
        font-weight: 650 !important;
        line-height: inherit !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="项目"]::before {
        content: "项目：" !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="总数量"]::before {
        content: "采购商品总数量：" !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[data-label="总计金额"]::before {
        content: "采购金额：" !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="procurement-orders"] > tbody > tr > td[colspan] {
        display: block !important;
        grid-column: 1/-1 !important;
        text-align: center !important;
    }
}

/* Mobile sales order cards: order/payment, customer/amount, shipping status/action. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        grid-template-rows: auto auto auto !important;
        gap: 7px 8px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="订单号"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="支付状态"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="发货状态"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="购货方"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="客户"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="金额"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="总金额"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="订单金额"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="操作"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="打印发货单"] {
        position: static !important;
        order: initial !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        border: 0 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="订单号"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-self: center !important;
        width: 100% !important;
        padding: 2px 0 !important;
        overflow: hidden !important;
        color: #263b32 !important;
        font-size: 15px !important;
        font-weight: 750 !important;
        line-height: 1.4 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="支付状态"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="发货状态"] {
        display: block !important;
        align-self: center !important;
        width: auto !important;
        padding: 2px 0 !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="支付状态"] {
        grid-column: 2 !important;
        grid-row: 1 !important;
        justify-self: end !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="发货状态"] {
        grid-column: 1 !important;
        grid-row: 3 !important;
        justify-self: start !important;
        padding-top: 7px !important;
        border-top: 1px solid #edf1ef !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="购货方"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="客户"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 2 !important;
        align-self: center !important;
        width: 100% !important;
        padding: 8px 0 1px !important;
        overflow: hidden !important;
        border-top: 1px solid #edf1ef !important;
        color: #52675d !important;
        font-size: 12px !important;
        line-height: 1.4 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="金额"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="总金额"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="订单金额"] {
        display: block !important;
        grid-column: 2 !important;
        grid-row: 2 !important;
        align-self: center !important;
        justify-self: end !important;
        width: auto !important;
        padding: 8px 0 1px 10px !important;
        overflow: hidden !important;
        border-top: 1px solid #edf1ef !important;
        color: #17634f !important;
        font-size: 14px !important;
        font-weight: 750 !important;
        line-height: 1.4 !important;
        text-align: right !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="操作"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="打印发货单"] {
        display: block !important;
        grid-column: 2 !important;
        grid-row: 3 !important;
        align-self: center !important;
        justify-self: end !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        padding: 7px 0 0 10px !important;
        border-top: 1px solid #edf1ef !important;
        overflow: visible !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="订单号"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="支付状态"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="发货状态"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="购货方"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="客户"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="金额"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="总金额"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="订单金额"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="操作"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[data-label="打印发货单"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] .sales-order-row-actions {
        display: flex !important;
        min-width: 0 !important;
        gap: 0 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] .sales-order-row-actions > a,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] a[href*="action=supply-sales-print"] {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] .sales-order-row-actions > .sales-ship-button {
        width: auto !important;
        min-width: 92px !important;
        margin: 0 !important;
        padding: 7px 10px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="supply-sales"] > tbody > tr > td[colspan] {
        display: block !important;
        grid-column: 1/-1 !important;
        text-align: center !important;
    }
}

/* Mobile after-sales cards: store/date, order/status, then issue details. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="after-sales"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        grid-template-rows: auto auto auto !important;
        gap: 5px 12px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="after-sales"] > tbody > tr > td[data-label="店铺"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="after-sales"] > tbody > tr > td[data-label="日期"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="after-sales"] > tbody > tr > td[data-label="订单号"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="after-sales"] > tbody > tr > td[data-label="状态"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="after-sales"] > tbody > tr > td[data-label="问题记录"] {
        position: static !important;
        order: initial !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        border: 0 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="after-sales"] > tbody > tr > td[data-label="店铺"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-self: center !important;
        width: 100% !important;
        padding: 2px 0 7px !important;
        overflow: hidden !important;
        color: #263b32 !important;
        font-size: 15px !important;
        font-weight: 750 !important;
        line-height: 1.4 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="after-sales"] > tbody > tr > td[data-label="日期"] {
        display: block !important;
        grid-column: 2 !important;
        grid-row: 1 !important;
        align-self: center !important;
        justify-self: end !important;
        width: auto !important;
        padding: 2px 0 7px !important;
        overflow: hidden !important;
        color: #718078 !important;
        font-size: 12px !important;
        line-height: 1.4 !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="after-sales"] > tbody > tr > td[data-label="日期"].mobile-date-only {
        font-size: 0 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="after-sales"] > tbody > tr > td[data-label="订单号"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="after-sales"] > tbody > tr > td[data-label="状态"] {
        display: block !important;
        grid-row: 2 !important;
        align-self: center !important;
        width: auto !important;
        padding: 7px 0 !important;
        border-top: 1px solid #edf1ef !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="after-sales"] > tbody > tr > td[data-label="订单号"] {
        grid-column: 1 !important;
        justify-self: stretch !important;
        overflow: hidden !important;
        color: #52675d !important;
        font-size: 12px !important;
        text-overflow: ellipsis !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="after-sales"] > tbody > tr > td[data-label="状态"] {
        grid-column: 2 !important;
        justify-self: end !important;
        padding-left: 10px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="after-sales"] > tbody > tr > td[data-label="问题记录"] {
        display: block !important;
        grid-column: 1/-1 !important;
        grid-row: 3 !important;
        width: 100% !important;
        padding: 8px 0 2px !important;
        overflow: hidden !important;
        border-top: 1px dashed #e3ebe6 !important;
        color: #40554b !important;
        font-size: 12px !important;
        line-height: 1.55 !important;
        text-overflow: ellipsis !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="after-sales"] > tbody > tr > td[data-label="店铺"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="after-sales"] > tbody > tr > td[data-label="日期"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="after-sales"] > tbody > tr > td[data-label="订单号"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="after-sales"] > tbody > tr > td[data-label="状态"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="after-sales"] > tbody > tr > td[data-label="问题记录"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="after-sales"] > tbody > tr > td[colspan] {
        display: block !important;
        grid-column: 1/-1 !important;
        text-align: center !important;
    }
}

.work-task-mobile-description-column {
    display: none;
}

/* Mobile work-task cards: task number/status, task content, then progress. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto auto !important;
        grid-template-rows: auto auto auto !important;
        gap: 7px 8px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="任务ID / 名称"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="剩余时间"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="状态"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="任务内容"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="任务说明"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="完成进度"] {
        position: static !important;
        order: initial !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        border: 0 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="任务ID / 名称"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-self: center !important;
        width: 100% !important;
        padding: 2px 0 !important;
        overflow: hidden !important;
        color: #263b32 !important;
        font-size: 0 !important;
        font-weight: 750 !important;
        line-height: 1.4 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="任务ID / 名称"] > * {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="任务ID / 名称"]::after {
        content: attr(data-mobile-task-no);
        color: #263b32;
        font-size: 15px;
        font-weight: 750;
        line-height: 1.4;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="剩余时间"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="状态"] {
        display: block !important;
        grid-row: 1 !important;
        align-self: center !important;
        justify-self: end !important;
        width: auto !important;
        padding: 2px 0 !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="剩余时间"] {
        grid-column: 2 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="状态"] {
        grid-column: 3 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="任务内容"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="任务说明"] {
        display: -webkit-box !important;
        grid-column: 1/-1 !important;
        grid-row: 2 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-height: 42px !important;
        padding: 8px 0 1px !important;
        overflow: hidden !important;
        border-top: 1px solid #edf1ef !important;
        color: #52675d !important;
        font-size: 12px !important;
        line-height: 1.55 !important;
        overflow-wrap: anywhere !important;
        white-space: normal !important;
        -webkit-box-orient: vertical !important;
        -webkit-line-clamp: 2 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="完成进度"] {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        grid-column: 1/-1 !important;
        grid-row: 3 !important;
        align-items: center !important;
        gap: 9px !important;
        width: 100% !important;
        padding: 9px 0 1px !important;
        border-top: 1px solid #edf1ef !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="完成进度"] .work-task-progress {
        width: 100%;
        margin: 0;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="完成进度"] small {
        margin: 0;
        color: #17634f;
        font-size: 12px;
        font-weight: 750;
        white-space: nowrap;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="任务ID / 名称"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="剩余时间"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="状态"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="任务内容"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="任务说明"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="完成进度"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[data-label="操作"] {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td[colspan] {
        display: block !important;
        grid-column: 1/-1 !important;
        text-align: center !important;
    }
}

/* Mobile product cards: product, prices, then opening and remaining stock. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr {
        display: grid !important;
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
        grid-template-rows: auto auto auto !important;
        gap: 5px 12px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[data-label="名称"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[data-label="线上标价"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[data-label="直播价"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[data-label="初始库存"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[data-label="当前库存"] {
        position: static !important;
        order: initial !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        border: 0 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[data-label="名称"] {
        display: block !important;
        grid-column: 1/-1 !important;
        grid-row: 1 !important;
        width: 100% !important;
        padding: 2px 0 7px !important;
        overflow: hidden !important;
        border-bottom: 1px solid #edf1ef !important;
        color: #263b32 !important;
        font-size: 15px !important;
        font-weight: 750 !important;
        line-height: 1.4 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[data-label="线上标价"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[data-label="直播价"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[data-label="初始库存"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[data-label="当前库存"] {
        display: flex !important;
        align-items: center !important;
        gap: 5px !important;
        width: auto !important;
        padding: 4px 0 !important;
        color: #40554b !important;
        font-size: 12px !important;
        line-height: 1.4 !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[data-label="线上标价"] {
        grid-column: 1 !important;
        grid-row: 2 !important;
        justify-self: start !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[data-label="直播价"] {
        grid-column: 2 !important;
        grid-row: 2 !important;
        justify-self: end !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[data-label="初始库存"] {
        grid-column: 1 !important;
        grid-row: 3 !important;
        justify-self: stretch !important;
        padding-top: 8px !important;
        border-top: 1px dashed #e3ebe6 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[data-label="当前库存"] {
        grid-column: 2 !important;
        grid-row: 3 !important;
        justify-self: end !important;
        padding-top: 8px !important;
        padding-left: 10px !important;
        border-top: 1px dashed #e3ebe6 !important;
        color: #17634f !important;
        font-weight: 750 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[data-label="名称"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[data-label="线上标价"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[data-label="直播价"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[data-label="初始库存"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[data-label="当前库存"]::before {
        display: inline !important;
        width: auto !important;
        margin: 0 !important;
        color: #7a8981 !important;
        font-size: 11px !important;
        line-height: 1.4 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[data-label="当前库存"]::before {
        content: "剩余库存";
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="products"] > tbody > tr > td[colspan] {
        display: block !important;
        grid-column: 1/-1 !important;
        text-align: center !important;
    }
}

/* Mobile product inventory cards: product/date first, movement type/quantity second. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="inventory"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        grid-template-rows: auto auto !important;
        gap: 5px 12px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="inventory"] > tbody > tr > td[data-label="产品"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="inventory"] > tbody > tr > td[data-label="日期"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="inventory"] > tbody > tr > td[data-label="类型"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="inventory"] > tbody > tr > td[data-label="数量"] {
        position: static !important;
        order: initial !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        border: 0 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="inventory"] > tbody > tr > td[data-label="产品"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-self: center !important;
        width: 100% !important;
        padding: 2px 0 7px !important;
        overflow: hidden !important;
        color: #263b32 !important;
        font-size: 15px !important;
        font-weight: 750 !important;
        line-height: 1.4 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="inventory"] > tbody > tr > td[data-label="日期"] {
        display: block !important;
        grid-column: 2 !important;
        grid-row: 1 !important;
        align-self: center !important;
        justify-self: end !important;
        width: auto !important;
        padding: 2px 0 7px !important;
        overflow: hidden !important;
        color: #718078 !important;
        font-size: 12px !important;
        line-height: 1.4 !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="inventory"] > tbody > tr > td[data-label="日期"].mobile-date-only {
        font-size: 0 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="inventory"] > tbody > tr > td[data-label="类型"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="inventory"] > tbody > tr > td[data-label="数量"] {
        display: block !important;
        grid-row: 2 !important;
        align-self: center !important;
        width: auto !important;
        padding: 7px 0 1px !important;
        border-top: 1px solid #edf1ef !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="inventory"] > tbody > tr > td[data-label="类型"] {
        grid-column: 1 !important;
        justify-self: stretch !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="inventory"] > tbody > tr > td[data-label="数量"] {
        grid-column: 2 !important;
        justify-self: end !important;
        padding-left: 10px !important;
        color: #17634f !important;
        font-size: 14px !important;
        font-weight: 750 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="inventory"] > tbody > tr > td[data-label="产品"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="inventory"] > tbody > tr > td[data-label="日期"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="inventory"] > tbody > tr > td[data-label="类型"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="inventory"] > tbody > tr > td[data-label="数量"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="inventory"] > tbody > tr > td[colspan] {
        display: block !important;
        grid-column: 1/-1 !important;
        text-align: center !important;
    }
}

/* Final mobile purchase-item layout override. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto auto !important;
        grid-template-rows: auto auto auto !important;
        gap: 5px 10px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging"] > tbody > tr > td[data-label="名称"] {
        display: block !important;
        grid-area: 1 / 1 / 2 / 3 !important;
        align-self: center !important;
        width: 100% !important;
        min-width: 0 !important;
        padding: 2px 0 7px !important;
        overflow: hidden !important;
        border: 0 !important;
        color: #263b32 !important;
        font-size: 15px !important;
        font-weight: 750 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging"] > tbody > tr > td[data-label="类型"] {
        display: block !important;
        grid-area: 1 / 3 / 2 / 4 !important;
        align-self: center !important;
        justify-self: end !important;
        width: auto !important;
        padding: 2px 0 7px !important;
        border: 0 !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging"] > tbody > tr > td[data-label="规格"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging"] > tbody > tr > td[data-label="单价"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging"] > tbody > tr > td[data-label="库存"] {
        display: flex !important;
        grid-row: 2 !important;
        align-items: center !important;
        gap: 4px !important;
        width: auto !important;
        min-width: 0 !important;
        padding: 7px 0 2px !important;
        border: 0 !important;
        border-top: 1px solid #edf1ef !important;
        font-size: 12px !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging"] > tbody > tr > td[data-label="规格"] {
        grid-column: 1 !important;
        justify-self: stretch !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging"] > tbody > tr > td[data-label="单价"] {
        grid-column: 2 !important;
        justify-self: end !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging"] > tbody > tr > td[data-label="库存"] {
        grid-column: 3 !important;
        justify-self: end !important;
        color: #17634f !important;
        font-weight: 750 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging"] > tbody > tr > td[data-label="备注"] {
        display: block !important;
        grid-area: 3 / 1 / 4 / -1 !important;
        width: 100% !important;
        min-width: 0 !important;
        padding: 7px 0 1px !important;
        overflow: hidden !important;
        border: 0 !important;
        border-top: 1px dashed #e3ebe6 !important;
        color: #63746b !important;
        font-size: 12px !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging"] > tbody > tr > td[data-label="名称"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging"] > tbody > tr > td[data-label="类型"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging"] > tbody > tr > td[data-label="规格"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging"] > tbody > tr > td[data-label="单价"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging"] > tbody > tr > td[data-label="库存"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging"] > tbody > tr > td[data-label="备注"]::before {
        display: inline !important;
        width: auto !important;
        margin: 0 !important;
        color: #7a8981 !important;
        font-size: 11px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging"] > tbody > tr > td[colspan] {
        display: block !important;
        grid-column: 1/-1 !important;
        text-align: center !important;
    }
}

/* Mobile purchase-item inventory cards: item first, date/type/quantity second. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging-inventory"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto auto !important;
        grid-template-rows: auto auto !important;
        gap: 5px 10px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging-inventory"] > tbody > tr > td[data-label="采购物品"] {
        display: block !important;
        grid-area: 1 / 1 / 2 / -1 !important;
        width: 100% !important;
        min-width: 0 !important;
        padding: 2px 0 7px !important;
        overflow: hidden !important;
        border: 0 !important;
        color: #263b32 !important;
        font-size: 15px !important;
        font-weight: 750 !important;
        line-height: 1.4 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging-inventory"] > tbody > tr > td[data-label="日期"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging-inventory"] > tbody > tr > td[data-label="类型"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging-inventory"] > tbody > tr > td[data-label="数量"] {
        display: flex !important;
        grid-row: 2 !important;
        position: static !important;
        align-items: center !important;
        gap: 4px !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 7px 0 1px !important;
        border: 0 !important;
        border-top: 1px solid #edf1ef !important;
        color: #40554b !important;
        font-size: 12px !important;
        line-height: 1.4 !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging-inventory"] > tbody > tr > td[data-label="日期"] {
        grid-column: 1 !important;
        justify-self: stretch !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging-inventory"] > tbody > tr > td[data-label="日期"].mobile-date-only {
        font-size: 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging-inventory"] > tbody > tr > td[data-label="日期"].mobile-date-only::after {
        display: none !important;
        content: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging-inventory"] > tbody > tr > td[data-label="类型"] {
        grid-column: 2 !important;
        justify-self: end !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging-inventory"] > tbody > tr > td[data-label="数量"] {
        grid-column: 3 !important;
        justify-self: end !important;
        color: #17634f !important;
        font-weight: 750 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging-inventory"] > tbody > tr > td[data-label="采购物品"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging-inventory"] > tbody > tr > td[data-label="日期"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging-inventory"] > tbody > tr > td[data-label="类型"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging-inventory"] > tbody > tr > td[data-label="数量"]::before {
        display: inline !important;
        width: auto !important;
        margin: 0 !important;
        color: #7a8981 !important;
        font-size: 11px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="packaging-inventory"] > tbody > tr > td[colspan] {
        display: block !important;
        grid-column: 1/-1 !important;
        text-align: center !important;
    }
}

/* Mobile device cards: device number/status first, model/SIM/account counts second. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-devices"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto auto !important;
        grid-template-rows: auto auto !important;
        gap: 5px 10px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-devices"] > tbody > tr > td[data-label="编号"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-devices"] > tbody > tr > td[data-label="状态"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-devices"] > tbody > tr > td[data-label="型号"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-devices"] > tbody > tr > td[data-label="插卡"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-devices"] > tbody > tr > td[data-label="账号"] {
        position: static !important;
        order: initial !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        border: 0 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-devices"] > tbody > tr > td[data-label="编号"] {
        display: block !important;
        grid-area: 1 / 1 / 2 / 3 !important;
        align-self: center !important;
        width: 100% !important;
        padding: 2px 0 7px !important;
        overflow: hidden !important;
        color: #263b32 !important;
        font-size: 15px !important;
        font-weight: 750 !important;
        line-height: 1.4 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-devices"] > tbody > tr > td[data-label="状态"] {
        display: block !important;
        grid-area: 1 / 3 / 2 / 4 !important;
        align-self: center !important;
        justify-self: end !important;
        width: auto !important;
        padding: 2px 0 7px !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-devices"] > tbody > tr > td[data-label="型号"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-devices"] > tbody > tr > td[data-label="插卡"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-devices"] > tbody > tr > td[data-label="账号"] {
        display: flex !important;
        grid-row: 2 !important;
        align-items: center !important;
        gap: 4px !important;
        width: auto !important;
        padding: 7px 0 1px !important;
        border-top: 1px solid #edf1ef !important;
        color: #40554b !important;
        font-size: 12px !important;
        line-height: 1.4 !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-devices"] > tbody > tr > td[data-label="型号"] {
        grid-column: 1 !important;
        justify-self: stretch !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-devices"] > tbody > tr > td[data-label="插卡"] {
        grid-column: 2 !important;
        justify-self: end !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-devices"] > tbody > tr > td[data-label="账号"] {
        grid-column: 3 !important;
        justify-self: end !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-devices"] > tbody > tr > td[data-label="编号"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-devices"] > tbody > tr > td[data-label="状态"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-devices"] > tbody > tr > td[data-label="型号"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-devices"] > tbody > tr > td[data-label="插卡"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-devices"] > tbody > tr > td[data-label="账号"]::before {
        display: inline !important;
        width: auto !important;
        margin: 0 !important;
        color: #7a8981 !important;
        font-size: 11px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-devices"] > tbody > tr > td[colspan] {
        display: block !important;
        grid-column: 1/-1 !important;
        text-align: center !important;
    }
}

/* Mobile SIM cards: phone/identity/status first, remark second. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-sims"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) minmax(0,.7fr) auto !important;
        grid-template-rows: auto auto !important;
        gap: 5px 10px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-sims"] > tbody > tr > td[data-label="号码"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-sims"] > tbody > tr > td[data-label="实名"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-sims"] > tbody > tr > td[data-label="状态"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-sims"] > tbody > tr > td[data-label="备注"] {
        position: static !important;
        order: initial !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        border: 0 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-sims"] > tbody > tr > td[data-label="号码"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-self: center !important;
        width: 100% !important;
        padding: 2px 0 7px !important;
        overflow: hidden !important;
        color: #263b32 !important;
        font-size: 15px !important;
        font-weight: 750 !important;
        line-height: 1.4 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-sims"] > tbody > tr > td[data-label="实名"] {
        display: block !important;
        grid-column: 2 !important;
        grid-row: 1 !important;
        align-self: center !important;
        justify-self: end !important;
        width: 100% !important;
        padding: 2px 0 7px !important;
        overflow: hidden !important;
        color: #53675d !important;
        font-size: 12px !important;
        line-height: 1.4 !important;
        text-align: right !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-sims"] > tbody > tr > td[data-label="状态"] {
        display: block !important;
        grid-column: 3 !important;
        grid-row: 1 !important;
        align-self: center !important;
        justify-self: end !important;
        width: auto !important;
        padding: 2px 0 7px !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-sims"] > tbody > tr > td[data-label="备注"] {
        display: block !important;
        grid-column: 1/-1 !important;
        grid-row: 2 !important;
        width: 100% !important;
        padding: 7px 0 1px !important;
        overflow: hidden !important;
        border-top: 1px solid #edf1ef !important;
        color: #63746b !important;
        font-size: 12px !important;
        line-height: 1.45 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-sims"] > tbody > tr > td[data-label="号码"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-sims"] > tbody > tr > td[data-label="实名"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-sims"] > tbody > tr > td[data-label="状态"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-sims"] > tbody > tr > td[data-label="备注"]::before {
        display: inline !important;
        width: auto !important;
        margin: 0 4px 0 0 !important;
        color: #7a8981 !important;
        font-size: 11px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-sims"] > tbody > tr > td[colspan] {
        display: block !important;
        grid-column: 1/-1 !important;
        text-align: center !important;
    }
}

/* Mobile identity cards: identity name left, status right on one line. */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-identities"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        grid-template-rows: auto !important;
        align-items: center !important;
        gap: 10px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-identities"] > tbody > tr > td[data-label="名称"],
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-identities"] > tbody > tr > td[data-label="状态"] {
        position: static !important;
        order: initial !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        border: 0 !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-identities"] > tbody > tr > td[data-label="名称"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        width: 100% !important;
        padding: 2px 0 !important;
        overflow: hidden !important;
        color: #263b32 !important;
        font-size: 15px !important;
        font-weight: 750 !important;
        line-height: 1.4 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-identities"] > tbody > tr > td[data-label="状态"] {
        display: block !important;
        grid-column: 2 !important;
        grid-row: 1 !important;
        justify-self: end !important;
        width: auto !important;
        padding: 2px 0 !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-identities"] > tbody > tr > td[data-label="名称"]::before,
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-identities"] > tbody > tr > td[data-label="状态"]::before {
        display: none !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="media-identities"] > tbody > tr > td[colspan] {
        display: block !important;
        grid-column: 1/-1 !important;
        text-align: center !important;
    }
}

/* Definitive mobile income/expense override.
   The finance lists are already marked up on the server, so their first paint
   must not depend on the delayed table enhancement pass. */
@media(max-width:900px) {
    .workspace .table-wrap > table[data-mobile-module="incomes"] > tbody > tr,
    .workspace .table-wrap > table[data-mobile-module="expenses"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        gap: 0 10px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    .workspace .table-wrap > table[data-mobile-module="incomes"] > tbody > tr > td,
    .workspace .table-wrap > table[data-mobile-module="expenses"] > tbody > tr > td {
        display: none !important;
        position: static !important;
        order: initial !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        border: 0 !important;
    }

    .workspace .table-wrap > table[data-mobile-module="incomes"] > tbody > tr > td[data-label="项目订单"],
    .workspace .table-wrap > table[data-mobile-module="expenses"] > tbody > tr > td[data-label="项目"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-self: center !important;
        width: 100% !important;
        padding: 2px 0 8px !important;
        overflow: hidden !important;
        font-size: 14px !important;
        font-weight: 750 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap > table[data-mobile-module="incomes"] > tbody > tr > td[data-label="财务审核"],
    .workspace .table-wrap > table[data-mobile-module="expenses"] > tbody > tr > td:is([data-label="状态"],[data-label="审核"]) {
        display: block !important;
        grid-column: 2 !important;
        grid-row: 1 !important;
        align-self: center !important;
        justify-self: end !important;
        width: auto !important;
        padding: 2px 0 8px !important;
        overflow: visible !important;
        text-align: right !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap > table[data-mobile-module="incomes"] > tbody > tr > td[data-label="日期时间"],
    .workspace .table-wrap > table[data-mobile-module="expenses"] > tbody > tr > td[data-label="日期时间"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 2 !important;
        width: auto !important;
        padding: 7px 0 !important;
        overflow: hidden !important;
        border-top: 1px dashed #e5ebe7 !important;
        color: #718078 !important;
        font-size: 0 !important;
        text-align: left !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap > table[data-mobile-module="incomes"] > tbody > tr > td:is([data-label="开票"],[data-label="开票状态"],[data-label="发票状态"]),
    .workspace .table-wrap > table[data-mobile-module="expenses"] > tbody > tr > td:is([data-label="开票"],[data-label="开票状态"],[data-label="发票状态"]) {
        display: block !important;
        grid-column: 2 !important;
        grid-row: 2 !important;
        justify-self: end !important;
        width: auto !important;
        padding: 7px 0 !important;
        overflow: hidden !important;
        border-top: 1px dashed #e5ebe7 !important;
        color: #718078 !important;
        font-size: 12px !important;
        text-align: right !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap > table[data-mobile-module="incomes"] > tbody > tr > td[data-label="进账账号"],
    .workspace .table-wrap > table[data-mobile-module="expenses"] > tbody > tr > td[data-label="支出账号"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 3 !important;
        width: auto !important;
        padding: 7px 0 !important;
        overflow: hidden !important;
        border-top: 1px dashed #e5ebe7 !important;
        font-size: 12px !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap > table[data-mobile-module="incomes"] > tbody > tr > td[data-label="金额"],
    .workspace .table-wrap > table[data-mobile-module="expenses"] > tbody > tr > td[data-label="金额"] {
        display: block !important;
        grid-column: 2 !important;
        grid-row: 3 !important;
        justify-self: end !important;
        width: auto !important;
        padding: 7px 0 !important;
        overflow: hidden !important;
        border-top: 1px dashed #e5ebe7 !important;
        font-size: 13px !important;
        font-weight: 750 !important;
        text-align: right !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap > table[data-mobile-module="incomes"] > tbody > tr > td[data-label="款项说明"],
    .workspace .table-wrap > table[data-mobile-module="expenses"] > tbody > tr > td[data-label="款项说明"] {
        display: block !important;
        grid-column: 1/-1 !important;
        grid-row: 4 !important;
        width: 100% !important;
        padding: 7px 0 2px !important;
        overflow: hidden !important;
        border-top: 1px dashed #e5ebe7 !important;
        color: #53675d !important;
        font-size: 12px !important;
        line-height: 1.5 !important;
        text-align: left !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .workspace .table-wrap > table[data-mobile-module="incomes"] > tbody > tr > td[data-label*="审核人"],
    .workspace .table-wrap > table[data-mobile-module="expenses"] > tbody > tr > td[data-label*="审核人"] {
        display: none !important;
        width: 0 !important;
        min-width: 0 !important;
        max-width: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .workspace .table-wrap > table[data-mobile-module="incomes"] > tbody > tr > td::before,
    .workspace .table-wrap > table[data-mobile-module="expenses"] > tbody > tr > td::before {
        display: none !important;
        content: none !important;
    }

    .workspace .table-wrap > table[data-mobile-module="incomes"] > tbody > tr > td[data-label="款项说明"],
    .workspace .table-wrap > table[data-mobile-module="expenses"] > tbody > tr > td[data-label="款项说明"] {
        grid-template-columns: none !important;
        gap: 0 !important;
        padding-left: 0 !important;
        text-indent: 0 !important;
    }

    .workspace .table-wrap > table[data-mobile-module="incomes"] > tbody > tr > td[colspan],
    .workspace .table-wrap > table[data-mobile-module="expenses"] > tbody > tr > td[colspan] {
        display: block !important;
        grid-column: 1/-1 !important;
        padding: 22px 8px !important;
        text-align: center !important;
    }
}

/* Use the fixed server column positions for finance cards.
   This remains correct even when permission processing changes a header label. */
@media(max-width:900px) {
    .workspace .table-wrap > table[data-mobile-module="incomes"] > tbody > tr > td:nth-child(9),
    .workspace .table-wrap > table[data-mobile-module="expenses"] > tbody > tr > td:nth-child(12) {
        display: none !important;
        grid-column: auto !important;
        grid-row: auto !important;
        width: 0 !important;
        min-width: 0 !important;
        max-width: 0 !important;
        height: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        overflow: hidden !important;
        border: 0 !important;
        visibility: hidden !important;
    }

    .workspace .table-wrap > table[data-mobile-module="incomes"] > tbody > tr > td:nth-child(5),
    .workspace .table-wrap > table[data-mobile-module="expenses"] > tbody > tr > td:nth-child(4) {
        display: block !important;
        grid-column: 1 / -1 !important;
        grid-row: 4 !important;
        grid-template-columns: none !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        height: auto !important;
        padding: 7px 0 2px !important;
        margin: 0 !important;
        overflow: hidden !important;
        border: 0 !important;
        border-top: 1px dashed #e5ebe7 !important;
        color: #53675d !important;
        font-size: 12px !important;
        line-height: 1.5 !important;
        text-align: left !important;
        text-indent: 0 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
        visibility: visible !important;
    }

    .workspace .table-wrap > table[data-mobile-module="incomes"] > tbody > tr > td:nth-child(5)::before,
    .workspace .table-wrap > table[data-mobile-module="incomes"] > tbody > tr > td:nth-child(5)::after,
    .workspace .table-wrap > table[data-mobile-module="expenses"] > tbody > tr > td:nth-child(4)::before,
    .workspace .table-wrap > table[data-mobile-module="expenses"] > tbody > tr > td:nth-child(4)::after {
        display: none !important;
        content: none !important;
    }
}

/* Mobile list visibility must win over every card-layout rule.
   Filtering, tabs, data scopes and pagination all use the native hidden
   attribute; module-specific display:grid rules must never reveal those rows. */
@media(max-width:900px) {
    html body .app-shell .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module] > tbody > tr[hidden],
    html body .app-shell .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module] > tbody > tr[style*="display: none"],
    html body .app-shell .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module] > tbody > tr[style*="display:none"],
    html body .app-shell .workspace > main .table-wrap > table[data-mobile-module] > tbody > tr[hidden],
    html body .app-shell .workspace > main .table-wrap > table[data-mobile-module] > tbody > tr[style*="display: none"],
    html body .app-shell .workspace > main .table-wrap > table[data-mobile-module] > tbody > tr[style*="display:none"] {
        display: none !important;
        visibility: hidden !important;
    }
}

/* Review operators belong in details/activity, never in compact finance cards. */
@media(max-width:900px) {
    html body .workspace > main .table-wrap > table[data-mobile-module="incomes"] > tbody > tr > td:is([data-label="审核人"],[data-label="审核人员"],[data-label="财务审核人"]),
    html body .workspace > main .table-wrap > table[data-mobile-module="expenses"] > tbody > tr > td:is([data-label="审核人"],[data-label="审核人员"],[data-label="财务审核人"]) {
        display: none !important;
        visibility: hidden !important;
    }
}

/* A mobile record is one card: desktop cell striping must not create blocks. */
@media(max-width:900px) {
    html body .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module] > tbody > tr,
    html body .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module] > tbody > tr:hover {
        background: #fff !important;
        background-image: none !important;
    }

    html body .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module] > tbody > tr > td,
    html body .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module] > tbody > tr:nth-child(even) > td,
    html body .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module] > tbody > tr:hover > td {
        background: transparent !important;
        background-image: none !important;
        box-shadow: none !important;
    }

    html body .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module] > tbody > tr > td::before,
    html body .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module] > tbody > tr > td::after {
        background: transparent !important;
        background-image: none !important;
        box-shadow: none !important;
    }

    html body .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module] > tbody > tr.new-media-status-alert {
        background: #fffaf0 !important;
    }

    html body .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module] > tbody > tr.new-media-status-danger {
        background: #fff4f2 !important;
    }

    html body .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module] > tbody > tr.product-off-sale-row {
        background: #faf8f8 !important;
    }
}

/* Customer mobile toolbar: search and create always share one row. */
@media(max-width:900px) {
    html body .workspace > main .customer-list-panel > .customer-list-toolbar {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        align-items: center !important;
        gap: 8px !important;
        width: 100% !important;
        min-width: 0 !important;
        flex-wrap: nowrap !important;
    }

    html body .workspace > main .customer-list-panel > .customer-list-toolbar > .media-device-list-search {
        grid-column: 1 !important;
        order: 1 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }

    html body .workspace > main .customer-list-panel > .customer-list-toolbar > :is(.oa-open-modal,.permission-denied-create) {
        grid-column: 2 !important;
        order: 2 !important;
        justify-self: end !important;
        flex: 0 0 auto !important;
        width: auto !important;
        min-width: 58px !important;
        margin: 0 !important;
        white-space: nowrap !important;
    }
}

/* Mobile new-media account cards: account name and status share the first row. */
@media(max-width:900px) {
    html body .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module="media-accounts"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        gap: 0 10px !important;
        width: 100% !important;
        padding: 10px 12px !important;
    }

    html body .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module="media-accounts"] > tbody > tr > td[data-label="名称"] {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-self: center !important;
        width: 100% !important;
        min-width: 0 !important;
        padding: 2px 0 8px !important;
        overflow: hidden !important;
        border: 0 !important;
        font-size: 15px !important;
        font-weight: 750 !important;
        line-height: 1.4 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    html body .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module="media-accounts"] > tbody > tr > td[data-label="状态"] {
        display: block !important;
        grid-column: 2 !important;
        grid-row: 1 !important;
        align-self: center !important;
        justify-self: end !important;
        width: auto !important;
        min-width: 0 !important;
        padding: 2px 0 8px !important;
        border: 0 !important;
        white-space: nowrap !important;
    }

    html body .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module="media-accounts"] > tbody > tr > td[data-label="类型"] {
        display: flex !important;
        grid-column: 1/-1 !important;
        grid-row: 2 !important;
        align-items: center !important;
        gap: 5px !important;
        width: 100% !important;
        padding: 7px 0 !important;
        border: 0 !important;
        border-top: 1px solid #edf1ef !important;
        font-size: 12px !important;
    }

    html body .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module="media-accounts"] > tbody > tr > td[data-label="备注"] {
        display: grid !important;
        grid-column: 1/-1 !important;
        grid-row: 3 !important;
        grid-template-columns: auto minmax(0,1fr) !important;
        gap: 5px !important;
        width: 100% !important;
        padding: 7px 0 1px !important;
        overflow: hidden !important;
        border: 0 !important;
        border-top: 1px dashed #e3ebe6 !important;
        color: #63746b !important;
        font-size: 12px !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    html body .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module="media-accounts"] > tbody > tr > td[data-label="名称"]::before,
    html body .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module="media-accounts"] > tbody > tr > td[data-label="状态"]::before {
        display: none !important;
    }

    html body .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module="media-accounts"] > tbody > tr > td[colspan] {
        display: block !important;
        grid-column: 1/-1 !important;
        text-align: center !important;
    }
}

/* Larger touch targets for previous/next pagination on mobile. */
@media(max-width:900px) {
    html body .workspace .table-pagination-pages {
        gap: 9px !important;
    }

    html body .workspace .table-pagination-pages > button {
        display: inline-grid !important;
        place-items: center !important;
        flex: 0 0 44px !important;
        width: 44px !important;
        min-width: 44px !important;
        max-width: 44px !important;
        height: 44px !important;
        min-height: 44px !important;
        margin: 0 !important;
        padding: 0 !important;
        border-radius: 10px !important;
        font-size: 28px !important;
        font-weight: 600 !important;
        line-height: 1 !important;
        touch-action: manipulation;
    }

    html body .workspace .table-pagination-pages > .pagination-current {
        min-width: 42px;
        text-align: center;
        font-size: 13px;
        line-height: 44px;
        white-space: nowrap;
    }
}

/* Keep the complete mobile top bar visible while the page scrolls. */
@media(max-width:900px) {
    html body .app-shell .workspace {
        padding-top: 96px !important;
    }

    html body .app-shell .workspace > header {
        position: fixed !important;
        z-index: 1100 !important;
        top: 0 !important;
        right: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 96px !important;
        margin: 0 !important;
        background: #fff !important;
        box-shadow: 0 4px 16px rgba(25,55,42,.1) !important;
    }

    html body .impersonation-banner ~ .app-shell .workspace > header {
        top: 48px !important;
    }
}

@media(max-width:720px) {
    html body .impersonation-banner ~ .app-shell .workspace > header {
        top: 92px !important;
    }
}

@media(max-width:560px) {
    html body .app-shell .workspace {
        padding-top: 76px !important;
    }

    html body .app-shell .workspace > header {
        height: 76px !important;
    }
}

/* Final mobile invoice alignment override. */
@media(max-width:900px) {
    html body .app-shell .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module="invoices"] > tbody > tr {
        grid-template-columns: repeat(3,minmax(0,1fr)) !important;
        column-gap: 10px !important;
        align-items: start !important;
    }

    html body .app-shell .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module="invoices"] > tbody > tr > td[data-label="状态"],
    html body .app-shell .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module="invoices"] > tbody > tr > td[data-label="应开金额"],
    html body .app-shell .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module="invoices"] > tbody > tr > td[data-label="已登记"] {
        display: grid !important;
        grid-template-rows: 16px 26px !important;
        align-content: start !important;
        align-items: center !important;
        gap: 3px !important;
        width: 100% !important;
        min-width: 0 !important;
        height: 45px !important;
        padding: 0 !important;
        overflow: hidden !important;
        border: 0 !important;
        text-align: left !important;
    }

    html body .app-shell .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module="invoices"] > tbody > tr > td[data-label="状态"]::before,
    html body .app-shell .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module="invoices"] > tbody > tr > td[data-label="应开金额"]::before,
    html body .app-shell .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module="invoices"] > tbody > tr > td[data-label="已登记"]::before {
        display: flex !important;
        grid-row: 1 !important;
        align-items: center !important;
        width: 100% !important;
        height: 16px !important;
        margin: 0 !important;
        line-height: 16px !important;
        text-align: left !important;
    }

    html body .app-shell .workspace > main .table-wrap > table.oa-mobile-card-table[data-mobile-module="invoices"] > tbody > tr > td > .mobile-invoice-value {
        display: flex !important;
        grid-row: 2 !important;
        align-items: center !important;
        justify-content: flex-start !important;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 26px !important;
        overflow: hidden !important;
        line-height: 26px !important;
        text-align: left !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }
}

/* Highest-priority mobile placement for the customer search/create row. */
@media(max-width:900px) {
    html body .app-shell .workspace main .customer-list-panel > .customer-list-toolbar.customer-mobile-search-create {
        display: flex !important;
        flex-flow: row nowrap !important;
        align-items: center !important;
        gap: 8px !important;
        width: 100% !important;
        min-width: 0 !important;
    }
    html body .app-shell .workspace main .customer-list-panel > .customer-list-toolbar.customer-mobile-search-create > .media-device-list-search {
        order: 1 !important;
        flex: 1 1 0 !important;
        width: 0 !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 !important;
    }
    html body .app-shell .workspace main .customer-list-panel > .customer-list-toolbar.customer-mobile-search-create > :is(.oa-open-modal,.permission-denied-create) {
        order: 2 !important;
        flex: 0 0 auto !important;
        grid-column: auto !important;
        width: auto !important;
        min-width: 58px !important;
        margin: 0 !important;
        white-space: nowrap !important;
    }
}

/* All mobile list cards use one continuous card background.
   Cell and generated-label backgrounds must stay transparent so they cannot cover dashed separators. */
@media(max-width:900px) {
    html body .app-shell .workspace main .table-wrap > table.oa-mobile-card-table > tbody > tr,
    html body .app-shell .workspace main .table-wrap > table.oa-narrow-finance-card > tbody > tr {
        background-clip: padding-box !important;
        isolation: isolate;
    }

    html body .app-shell .workspace main .table-wrap > table.oa-mobile-card-table > tbody > tr > td,
    html body .app-shell .workspace main .table-wrap > table.oa-narrow-finance-card > tbody > tr > td {
        background: transparent !important;
        background-color: transparent !important;
        background-image: none !important;
        box-shadow: none !important;
    }

    html body .app-shell .workspace main .table-wrap > table.oa-mobile-card-table > tbody > tr > td::before,
    html body .app-shell .workspace main .table-wrap > table.oa-mobile-card-table > tbody > tr > td::after,
    html body .app-shell .workspace main .table-wrap > table.oa-narrow-finance-card > tbody > tr > td::before,
    html body .app-shell .workspace main .table-wrap > table.oa-narrow-finance-card > tbody > tr > td::after {
        background: transparent !important;
        background-color: transparent !important;
        background-image: none !important;
        box-shadow: none !important;
    }
}

/* Keep catalog company filters on the left of the same compact toolbar on tablets and phones. */
@media(max-width:900px) {
    html body .workspace .catalog-visual-list-toolbar.catalog-company-filter-toolbar {
        display: grid !important;
        grid-template-columns: minmax(110px,1.35fr) minmax(74px,.8fr) auto auto !important;
        align-items: center !important;
        gap: 6px !important;
    }
    html body .workspace .catalog-visual-list-toolbar.catalog-company-filter-toolbar > .catalog-company-tabs {
        grid-column: 1 !important;
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 3px !important;
    }
    html body .workspace .catalog-visual-list-toolbar.catalog-company-filter-toolbar > .catalog-company-tabs .detail-tab {
        min-width: 0 !important;
        padding: 7px 10px !important;
    }
    html body .workspace .catalog-visual-list-toolbar.catalog-company-filter-toolbar > .media-device-list-search {
        grid-column: 2 !important;
        width: 100% !important;
        min-width: 0 !important;
    }
    html body .workspace .catalog-visual-list-toolbar.catalog-company-filter-toolbar > .compact-view-toolbar {
        grid-column: 3 !important;
    }
    html body .workspace .catalog-visual-list-toolbar.catalog-company-filter-toolbar > .oa-open-modal,
    html body .workspace .catalog-visual-list-toolbar.catalog-company-filter-toolbar > .permission-denied-create {
        grid-column: 4 !important;
    }
}

/* Employee and invoice filters follow the product-list filter layout. */
.workspace .catalog-aligned-filter-panel {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto !important;
    align-items: center !important;
    column-gap: 10px !important;
}
.workspace .catalog-aligned-filter-panel > .catalog-aligned-filter-tabs {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: center !important;
    min-width: 0 !important;
    width: auto !important;
    margin: 0 0 12px !important;
    padding: 5px !important;
    border: 1px solid #dfe7e2 !important;
    border-radius: 11px !important;
    background: #edf3ef !important;
    overflow-x: auto !important;
}
.workspace .catalog-aligned-filter-panel > .catalog-aligned-filter-tabs .detail-tab {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 9px 15px !important;
    border: 0 !important;
    border-radius: 8px !important;
    color: #53675d !important;
    background: transparent !important;
    box-shadow: none !important;
    white-space: nowrap !important;
}
.workspace .catalog-aligned-filter-panel > .catalog-aligned-filter-tabs .detail-tab.is-active {
    color: #fff !important;
    background: #17634f !important;
    box-shadow: 0 4px 10px rgba(23,99,79,.18) !important;
}
.workspace .catalog-aligned-filter-panel > .catalog-aligned-filter-actions {
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-self: center !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 0 12px !important;
    flex-wrap: nowrap !important;
}
.workspace .catalog-aligned-filter-panel > .catalog-aligned-filter-actions > .media-device-list-search {
    flex: 0 1 300px !important;
    width: min(300px,28vw) !important;
    min-width: 150px !important;
}
.workspace .catalog-aligned-filter-panel > :not(.catalog-aligned-filter-tabs):not(.catalog-aligned-filter-actions) {
    grid-column: 1 / -1 !important;
}

@media(max-width:700px) {
    .workspace .catalog-aligned-filter-panel {
        grid-template-columns: minmax(130px,1.2fr) minmax(150px,1fr) !important;
        column-gap: 6px !important;
    }
    .workspace .catalog-aligned-filter-panel > .catalog-aligned-filter-tabs {
        padding: 3px !important;
        margin-bottom: 8px !important;
    }
    .workspace .catalog-aligned-filter-panel > .catalog-aligned-filter-tabs .detail-tab {
        padding: 7px 10px !important;
    }
    .workspace .catalog-aligned-filter-panel > .catalog-aligned-filter-actions {
        gap: 6px !important;
        margin-bottom: 8px !important;
    }
    .workspace .catalog-aligned-filter-panel > .catalog-aligned-filter-actions > .media-device-list-search {
        flex: 1 1 auto !important;
        width: auto !important;
        min-width: 0 !important;
    }
    .workspace .catalog-aligned-filter-panel > .catalog-aligned-filter-actions > .oa-open-modal,
    .workspace .catalog-aligned-filter-panel > .catalog-aligned-filter-actions > .permission-denied-create {
        flex: 0 0 auto !important;
        min-width: 58px !important;
        margin: 0 !important;
    }
}

/* 工作任务保留快捷操作：电脑端显示最后一列，手机端放在卡片底部。 */
@media(max-width:900px) {
    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr {
        grid-template-rows: auto auto auto auto !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] > tbody > tr > td.mobile-card-action {
        display: block !important;
        grid-column: 1/-1 !important;
        grid-row: 4 !important;
        width: 100% !important;
        padding: 9px 0 1px !important;
        border-top: 1px solid #edf1ef !important;
    }

    .workspace .table-wrap table.oa-mobile-card-table[data-mobile-module="work-tasks"] .work-task-quick-actions {
        display: flex !important;
        justify-content: flex-end;
        gap: 8px;
    }
}
/* Pending update/delete requests: visually lock the record until review completes. */
.approval-pending-row > td {
  background: #fff9e9 !important;
}
.approval-pending-row.approval-pending-delete > td {
  background: #fff2ef !important;
}
.approval-pending-row.approval-pending-update > td:first-child {
  box-shadow: inset 4px 0 #d89a2b;
}
.approval-pending-row.approval-pending-delete > td:first-child {
  box-shadow: inset 4px 0 #c7564a;
}

/* Product status filter and unmistakable off-sale state. */
.workspace .product-status-list-filter {
  flex: 0 0 112px !important;
  width: 112px !important;
  min-width: 112px !important;
  height: 38px !important;
  margin: 0 !important;
  padding: 0 28px 0 11px !important;
  border: 1px solid #d7e1dc !important;
  border-radius: 9px !important;
  color: #40534a !important;
  background-color: #fff !important;
}
.workspace .product-off-sale-tag {
  border: 1px solid #d66c64 !important;
  color: #a42f2a !important;
  background: #ffe8e5 !important;
  box-shadow: 0 0 0 3px rgba(194,65,56,.08) !important;
  font-weight: 800 !important;
}
.workspace .product-off-sale-row > td {
  color: #755e5c !important;
  background: #fff4f2 !important;
}
.workspace .product-off-sale-row > td:first-child {
  box-shadow: inset 4px 0 #c34b43 !important;
}
.workspace .product-gallery-card.is-off-sale {
  position: relative;
  border: 2px solid #d36b63 !important;
  background: #fff5f3 !important;
  box-shadow: 0 5px 18px rgba(164,47,42,.11) !important;
}
.workspace .product-gallery-card.is-off-sale::before {
  content: "已停售";
  position: absolute;
  z-index: 2;
  top: 11px;
  left: 11px;
  padding: 5px 9px;
  border-radius: 7px;
  color: #fff;
  background: #b53d36;
  box-shadow: 0 3px 10px rgba(105,28,24,.24);
  font-size: 12px;
  font-weight: 800;
}
@media(max-width:700px) {
  .workspace .catalog-company-filter-toolbar > .catalog-company-tabs {
    grid-column: 1 / 4 !important;
    grid-row: 2 !important;
  }
  .workspace .catalog-company-filter-toolbar > .product-status-list-filter {
    grid-column: 4 !important;
    grid-row: 2 !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  .workspace .catalog-company-filter-toolbar > .media-device-list-search {
    grid-column: 1 / 3 !important;
    grid-row: 1 !important;
  }
  .workspace .catalog-company-filter-toolbar > .compact-view-toolbar {
    grid-column: 3 !important;
    grid-row: 1 !important;
  }
  .workspace .catalog-company-filter-toolbar > .oa-open-modal,
  .workspace .catalog-company-filter-toolbar > .permission-denied-create {
    grid-column: 4 !important;
    grid-row: 1 !important;
  }
}
.product-gallery-card.approval-pending-update {
  border-color: #e7bf65;
  background: #fffbef;
}
.product-gallery-card.approval-pending-delete {
  border-color: #dc8f86;
  background: #fff3f1;
}
.approval-pending-row:hover > td {
  filter: brightness(.985);
}
.approval-pending-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  max-width: 100%;
  min-height: 22px;
  margin-left: 8px;
  padding: 2px 8px;
  border: 1px solid #e7bf70;
  border-radius: 999px;
  color: #8a5b08;
  background: #fff0c8;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.35;
  white-space: nowrap;
  vertical-align: middle;
}
.approval-pending-badge.is-delete,
.approval-pending-delete .approval-pending-badge {
  border-color: #e2aaa3;
  color: #9f3f35;
  background: #ffe1dc;
}
.approval-lock-notice {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
  padding: 11px 13px;
  border: 1px solid #ead093;
  border-radius: 10px;
  background: #fff9e9;
}
.approval-lock-notice.is-delete {
  border-color: #e8b9b3;
  background: #fff2ef;
}
.approval-lock-notice .approval-pending-badge {
  flex: 0 0 auto;
  margin: 0;
}
.approval-lock-notice div {
  min-width: 0;
}
.approval-lock-notice b,
.approval-lock-notice small {
  display: block;
}
.approval-lock-notice small {
  margin-top: 2px;
  color: #7c7569;
}
body > .approval-rejected-notice {
  margin: 14px 18px 0;
  border-color: #efc1ba;
  color: #81352e;
  background: #fff1ee;
  box-shadow: inset 4px 0 0 #bd493e;
}
body > .approval-rejected-notice > .approval-pending-badge {
  border-color: #d9958d;
  color: #fff;
  background: #bd493e;
}
body > .approval-rejected-notice > div {
  flex: 1 1 auto;
}
body > .approval-rejected-notice > form {
  flex: 0 0 auto;
  width: auto;
  margin: 0 0 0 auto;
}
body > .approval-rejected-notice > form button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 96px;
  height: 38px;
  margin: 0;
  padding: 0 16px;
  white-space: nowrap;
}
.workspace .product-change-rejected-row > td {
  background: #fff1ee !important;
}
.workspace .product-change-rejected-badge {
  border-color: #dfa49d;
  color: #9b3e34;
  background: #ffe2de;
}
.workspace .product-change-rejected-card {
  border-color: #dfa49d !important;
  background: #fff8f6 !important;
  box-shadow: inset 0 4px 0 #bf4036;
}
@media(max-width:640px) {
  body > .approval-rejected-notice { flex-wrap: wrap; }
  body > .approval-rejected-notice > form { flex-basis: 100%; margin-left: 0; }
}
.approval-locked-panel {
  max-width: 520px;
  margin: 28px auto;
  text-align: center;
}
.approval-locked-panel .approval-pending-badge {
  margin: 0 auto 12px;
}
.approval-locked-panel h3 {
  margin: 0 0 8px;
}
.approval-locked-panel p {
  color: #64736b;
}
@media (max-width: 680px) {
  .approval-pending-badge {
    margin-left: 6px;
    padding-inline: 6px;
    font-size: 10px;
  }
  .approval-lock-notice {
    align-items: flex-start;
  }
}

/* 审核中心：清楚展示板块、对象以及每个字段的修改前后值。 */
.approval-task-grid .change-task {
  grid-column: span 2;
}
.approval-task-grid .change-task h4 {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.approval-change-count,
.approval-delete-summary {
  width: max-content;
  max-width: 100%;
  margin-top: 10px;
  padding: 4px 9px;
  border-radius: 999px;
  color: #48677f;
  background: #e8f0f7;
  font-size: 12px;
  font-weight: 700;
}
.approval-delete-summary {
  width: auto;
  border-radius: 8px;
  color: #944538;
  background: #fff0ed;
  overflow-wrap: anywhere;
}
.approval-task-card .approval-field-diff {
  max-height: 260px;
  margin-top: 8px;
  border: 1px solid #dce6ef;
  border-radius: 9px;
  background: #fff;
  overflow: auto;
}
.approval-field-diff-head,
.approval-field-diff-row {
  display: grid;
  grid-template-columns: minmax(74px, .75fr) minmax(0, 1fr) 22px minmax(0, 1fr);
  align-items: center;
  min-width: 520px;
}
.approval-field-diff-head {
  position: sticky;
  z-index: 1;
  top: 0;
  color: #687a71;
  background: #f1f5f8;
  font-size: 11px;
  font-weight: 700;
}
.approval-field-diff-head > *,
.approval-field-diff-row > * {
  min-width: 0;
  margin: 0;
  padding: 8px 9px;
  border: 0 !important;
  font-style: normal;
}
.approval-field-diff-row {
  border-top: 1px solid #edf1ef;
  font-size: 12px;
}
.approval-field-diff-row em {
  color: #344b40;
  font-weight: 700;
}
.approval-field-diff-row span,
.approval-field-diff-row b {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.approval-field-diff-row span {
  color: #9a443e;
}
.approval-field-diff-row b {
  color: #167253;
}
.approval-field-diff-head i,
.approval-field-diff-row i {
  padding-inline: 3px;
  color: #8a9891;
  text-align: center;
}
.approval-task-card .approval-review-buttons {
  justify-content: flex-end;
}
.approval-task-card .approval-review-buttons button {
  width: auto;
  min-width: 88px;
  margin: 0;
}

/* 修改记录：固定短字段宽度，把空间留给对象和修改值。 */
.audit-records-panel {
  padding: 14px;
}
.audit-records-table {
  width: 100%;
  table-layout: fixed;
}
.audit-records-table th:nth-child(1) { width: 72px; }
.audit-records-table th:nth-child(2) { width: 152px; }
.audit-records-table th:nth-child(3) { width: 19%; }
.audit-records-table th:nth-child(4) { width: 110px; }
.audit-records-table th:nth-child(7),
.audit-records-table th:nth-child(8) { width: 86px; }
.audit-records-table td {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.audit-object-link {
  display: block;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  color: #176d53;
  background: transparent;
  text-align: left;
  box-shadow: none;
}
.audit-object-link:hover {
  color: #0c553f;
  background: transparent;
  box-shadow: none;
}
.audit-object-link small,
.audit-object-link b {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.audit-object-link small {
  color: #77867f;
  font-size: 11px;
}
.audit-object-link b {
  margin-top: 2px;
  text-decoration: underline;
  text-decoration-color: #a9c7bb;
  text-underline-offset: 3px;
}
.audit-action-create {
  color: #176a4c;
  background: #daf1e6;
}
.audit-action-delete {
  color: #9f4133;
  background: #f8dfda;
}
.audit-action-update,
.audit-action-review,
.audit-action-finance_review {
  color: #456987;
  background: #dfeaf4;
}
.audit-new-value {
  color: #167253;
}
.audit-detail-page {
  padding: 18px;
  background: #f4f6f3;
}
.audit-detail-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.audit-detail-summary > div,
.audit-snapshot-grid > div,
.audit-compare > div {
  min-width: 0;
  padding: 12px;
  border-radius: 9px;
  background: #f2f6f4;
}
.audit-detail-summary small,
.audit-detail-summary strong,
.audit-snapshot-grid small,
.audit-snapshot-grid strong,
.audit-compare small,
.audit-compare strong {
  display: block;
}
.audit-detail-summary small,
.audit-snapshot-grid small,
.audit-compare small {
  margin-bottom: 4px;
  color: #74837b;
}
.audit-detail-summary strong,
.audit-snapshot-grid strong,
.audit-compare strong {
  overflow-wrap: anywhere;
}
.audit-snapshot {
  margin-top: 16px;
}
.audit-snapshot h3 {
  margin: 0 0 10px;
}
.audit-snapshot-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.audit-compare {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 30px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  margin-top: 16px;
}
.audit-compare > i {
  color: #7b8b83;
  font-style: normal;
  text-align: center;
}
@media (max-width: 900px) {
  .approval-task-grid .change-task {
    grid-column: 1 / -1;
  }
  .audit-records-table th:nth-child(2) {
    width: 118px;
  }
  .audit-records-table th:nth-child(7),
  .audit-records-table th:nth-child(8) {
    width: 70px;
  }
}
@media (max-width: 680px) {
  .approval-field-diff-head,
  .approval-field-diff-row {
    min-width: 470px;
  }
  .audit-records-table {
    min-width: 780px;
  }
  .audit-detail-summary,
  .audit-snapshot-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .audit-compare {
    grid-template-columns: 1fr;
  }
  .audit-compare > i {
    transform: rotate(90deg);
  }
}

/* v0.15.567 审核中心：所有审核卡片使用相同规格，差异只保留在内容布局和颜色。 */
.approval-hub {
  padding: 18px !important;
  border: 1px solid #dce6e1 !important;
  background:
    radial-gradient(circle at 100% 0, rgba(33, 126, 95, .055), transparent 30%),
    #fff !important;
}
.approval-hub > .section-head {
  align-items: center !important;
  margin: 0 0 16px !important;
  padding: 2px 3px 15px !important;
  border-bottom: 1px solid #e4ebe7;
}
.approval-hub > .section-head h3 {
  margin: 0 0 4px !important;
  font-size: 18px;
}
.approval-hub > .section-head p {
  margin: 0 !important;
  color: #73827a;
  font-size: 12px;
}
.approval-hub > .section-head > .tag {
  min-width: 58px;
  padding: 6px 11px;
  border: 0;
  color: #1f684f;
  background: #e5f2eb;
  text-align: center;
  font-weight: 800;
}
.approval-hub .approval-task-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)) !important;
  align-items: stretch !important;
  gap: 16px !important;
}
.approval-hub .approval-task-card,
.approval-hub .approval-task-grid .change-task {
  grid-column: auto !important;
  width: 100% !important;
  height: 370px !important;
  min-height: 370px !important;
  max-height: 370px !important;
  padding: 18px 18px 16px 22px !important;
  border-radius: 15px !important;
  box-sizing: border-box !important;
  box-shadow: 0 7px 22px rgba(36, 72, 57, .07) !important;
}
.approval-hub .approval-task-card:hover {
  box-shadow: 0 12px 28px rgba(36, 72, 57, .12) !important;
}
.approval-hub .approval-task-card::before {
  width: 5px !important;
}
.approval-hub .approval-task-card > header {
  flex: 0 0 28px;
  min-height: 28px;
}
.approval-hub .approval-task-card > header .tag {
  max-width: calc(100% - 104px);
  padding: 5px 9px;
  border-radius: 7px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.approval-hub .approval-task-card > header > b {
  flex: 0 0 auto;
  max-width: 100px;
  overflow: hidden;
  color: #253d32;
  font-size: 16px !important;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.approval-hub .approval-task-card > h4 {
  display: -webkit-box !important;
  flex: 0 0 42px;
  min-height: 42px;
  max-height: 42px;
  margin: 13px 0 7px !important;
  overflow: hidden !important;
  font-size: 15px;
  line-height: 21px;
  white-space: normal !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.approval-hub .approval-task-card > p {
  display: -webkit-box;
  flex: 0 0 36px;
  min-height: 36px;
  max-height: 36px;
  margin: 0 0 7px !important;
  overflow: hidden;
  color: #56695f;
  font-size: 12px;
  line-height: 18px;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.approval-hub .approval-task-card > small {
  display: -webkit-box;
  flex: 0 0 34px;
  min-height: 34px;
  max-height: 34px;
  overflow: hidden;
  line-height: 17px;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.approval-hub .approval-task-note {
  flex: 0 0 48px;
  max-height: 48px;
  margin-top: 9px !important;
  padding: 7px 9px !important;
  box-sizing: border-box;
  overflow: auto;
  line-height: 17px;
}
.approval-hub .approval-task-card > form,
.approval-hub .approval-task-card > .approval-review-buttons {
  flex: 0 0 44px;
  min-height: 44px;
  margin-top: auto !important;
  padding-top: 10px !important;
}
.approval-hub .approval-task-card > form button,
.approval-hub .approval-task-card > .approval-review-buttons button {
  height: 34px;
  min-height: 34px;
  margin: 0 !important;
  padding: 6px 13px;
}
.approval-hub .approval-task-card > .approval-complete-income {
  width: auto;
  min-width: 126px;
  height: 34px;
  min-height: 34px;
  margin: auto 0 0 auto;
  padding: 6px 13px;
}
.approval-hub .change-task .approval-change-count {
  flex: 0 0 auto;
  margin-top: 8px;
}
.approval-hub .change-task .approval-field-diff {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none !important;
  margin-top: 8px;
  overflow: auto;
}
.approval-hub .change-task .approval-field-diff-head,
.approval-hub .change-task .approval-field-diff-row {
  grid-template-columns: minmax(62px, .7fr) minmax(0, 1fr) 18px minmax(0, 1fr);
  min-width: 0 !important;
}
.approval-hub .change-task .approval-field-diff-head > *,
.approval-hub .change-task .approval-field-diff-row > * {
  padding: 7px 6px;
}
.approval-hub .change-task .approval-delete-summary {
  flex: 1 1 auto;
  align-content: center;
  margin-top: 10px;
}
.approval-hub .change-task .approval-self-note {
  flex: 0 0 auto;
  max-height: 48px;
  margin-top: auto;
  overflow: auto;
}
.approval-hub .approval-empty {
  min-height: 180px;
  align-content: center;
  margin: 0;
  border: 1px dashed #d4e1da;
  border-radius: 13px;
  background: #f8faf9;
}
@media (max-width: 720px) {
  .approval-hub {
    padding: 12px !important;
  }
  .approval-hub .approval-task-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  .approval-hub .approval-task-card,
  .approval-hub .approval-task-grid .change-task {
    height: 350px !important;
    min-height: 350px !important;
    max-height: 350px !important;
  }
}

/* Invoice records expose edit/delete actions on both desktop and mobile lists. */
.invoice-panel table :is(th,td):last-child{width:142px!important;min-width:142px!important;overflow:visible!important}
@media(max-width:900px){
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="invoices"]>tbody>tr>td[data-label="操作"]{
    display:flex!important;
    grid-column:1/-1!important;
    grid-row:2!important;
    align-items:center!important;
    justify-content:flex-end!important;
    width:100%!important;
    min-width:0!important;
    padding:7px 0 0!important;
    overflow:visible!important;
    border:0!important;
    border-top:1px dashed #dce5df!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="invoices"]>tbody>tr>td[data-label="操作"]:before{display:none!important}
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="invoices"] .invoice-row-buttons{justify-content:flex-end;width:100%}
}

/* 审核卡片紧凑版：直接说明“字段：原值 → 新值”，不使用内部滚动表格。 */
.approval-hub {
  padding: 14px !important;
}

/* 数据动态：原内容与新内容分行展示，长内容在各自行内换行。 */
.activity-column article > div {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: stretch !important;
  gap: 6px !important;
}
.activity-column article > div > i {
  display: none !important;
}
.activity-column article > div > span,
.activity-column article > div > strong {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  max-height: none !important;
  box-sizing: border-box !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
  white-space: pre-wrap !important;
  line-height: 1.55 !important;
}
.activity-column article > div > span::before,
.activity-column article > div > strong::before {
  display: block;
  margin-bottom: 2px;
  color: #7a8881;
  font-size: 11px;
  font-weight: 500;
}
.activity-column article > div > span::before {
  content: "原内容";
}
.activity-column article > div > strong::before {
  content: "新内容";
}
.approval-hub > .section-head {
  margin-bottom: 12px !important;
  padding-bottom: 11px !important;
}
.approval-hub .approval-task-grid {
  gap: 12px !important;
}
.approval-hub .approval-task-card,
.approval-hub .approval-task-grid .change-task {
  height: 250px !important;
  min-height: 250px !important;
  max-height: 250px !important;
  padding: 13px 14px 12px 18px !important;
  border-radius: 12px !important;
  box-shadow: 0 4px 14px rgba(36, 72, 57, .065) !important;
}
.approval-hub .approval-task-card > header {
  flex-basis: 23px;
  min-height: 23px;
}
.approval-hub .approval-task-card > header .tag {
  max-width: calc(100% - 94px);
  padding: 3px 7px;
  border-radius: 6px;
  font-size: 11px;
}
.approval-hub .approval-task-card > header > b {
  max-width: 92px;
  font-size: 14px !important;
}
.approval-hub .approval-task-card > h4 {
  display: block !important;
  flex: 0 0 23px;
  min-height: 23px;
  max-height: 23px;
  margin: 8px 0 3px !important;
  font-size: 14px;
  line-height: 23px;
  text-overflow: ellipsis;
  white-space: nowrap !important;
  -webkit-line-clamp: unset;
}
.approval-hub .approval-task-card > p {
  display: block;
  flex: 0 0 19px;
  min-height: 19px;
  max-height: 19px;
  margin: 0 0 3px !important;
  font-size: 11px;
  line-height: 19px;
  text-overflow: ellipsis;
  white-space: nowrap;
  -webkit-line-clamp: unset;
}
.approval-hub .approval-task-card > small {
  display: block;
  flex: 0 0 17px;
  min-height: 17px;
  max-height: 17px;
  line-height: 17px;
  text-overflow: ellipsis;
  white-space: nowrap;
  -webkit-line-clamp: unset;
}
.approval-hub .approval-task-note {
  flex: 0 0 34px;
  max-height: 34px;
  margin-top: 5px !important;
  padding: 4px 7px !important;
  overflow: hidden;
  font-size: 11px;
  line-height: 13px;
}
.approval-hub .change-task .approval-field-diff {
  display: block;
  flex: 0 0 auto;
  min-height: 0;
  max-height: none !important;
  margin: 5px 0 0 !important;
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
}
.approval-hub .change-task .approval-field-diff-row {
  display: grid !important;
  grid-template-columns: minmax(58px, .72fr) minmax(0, 1fr) 14px minmax(0, 1fr);
  align-items: center;
  min-width: 0 !important;
  height: 23px;
  border: 0;
  border-bottom: 1px dashed #e1e8e4;
  font-size: 11px;
}
.approval-hub .change-task .approval-field-diff-row > * {
  min-width: 0;
  margin: 0 !important;
  padding: 3px 2px !important;
  border: 0 !important;
  line-height: 17px;
}
.approval-hub .change-task .approval-field-diff-row em {
  color: #3e554a;
  font-weight: 700;
}
.approval-hub .change-task .approval-field-diff-row span,
.approval-hub .change-task .approval-field-diff-row b {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.approval-hub .change-task .approval-field-diff-row i {
  color: #85948c;
  text-align: center;
}
.approval-more-changes {
  height: 17px;
  color: #718078;
  font-size: 10px;
  line-height: 17px;
  text-align: right;
}
.approval-hub .change-task .approval-delete-summary {
  flex: 0 0 auto;
  margin-top: 6px;
  padding: 6px 8px;
  font-size: 11px;
}
.approval-hub .approval-task-card > form,
.approval-hub .approval-task-card > .approval-review-buttons {
  flex-basis: 35px;
  min-height: 35px;
  padding-top: 5px !important;
}
.approval-hub .approval-task-card > form button,
.approval-hub .approval-task-card > .approval-review-buttons button,
.approval-hub .approval-task-card > .approval-complete-income {
  height: 30px;
  min-height: 30px;
  padding: 4px 11px;
  font-size: 12px;
}
.approval-hub .change-task .approval-self-note {
  max-height: 32px;
  margin-top: auto;
  padding: 5px 7px;
  overflow: hidden;
  font-size: 10px;
  line-height: 13px;
}
@media (max-width: 720px) {
  .approval-hub .approval-task-card,
  .approval-hub .approval-task-grid .change-task {
    height: 245px !important;
    min-height: 245px !important;
    max-height: 245px !important;
  }
}
/* Compact procurement-order creation dialog. */
.oa-modal:has(.procurement-order-form) {
    width: min(900px, 94vw);
}

.procurement-order-form .procurement-order-head {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 14px;
}

.procurement-order-form .procurement-line {
    grid-template-columns: minmax(170px, 1.35fr) minmax(90px, .62fr) minmax(80px, .55fr) minmax(105px, .7fr) 36px;
    gap: 8px;
    padding: 10px;
}

.procurement-order-form .procurement-line .remove-line {
    width: 36px;
}

@media (max-width: 700px) {
    .oa-modal:has(.procurement-order-form) {
        width: 98vw;
    }

    .procurement-order-form .procurement-order-head {
        grid-template-columns: 1fr;
    }

    .procurement-order-form .procurement-line {
        grid-template-columns: 1fr 1fr;
    }

    .procurement-order-form .procurement-line label:first-child {
        grid-column: 1 / -1;
    }
}
/* Keep every approval task card on one shared visual grid, including procurement expenses. */
html body .approval-hub .approval-task-grid {
    grid-auto-rows: 270px !important;
    align-items: stretch !important;
}

html body .approval-hub .approval-task-grid > .approval-task-card {
    align-self: stretch !important;
    width: 100% !important;
    height: 270px !important;
    min-height: 270px !important;
    max-height: 270px !important;
    box-sizing: border-box !important;
}

@media (max-width: 720px) {
    html body .approval-hub .approval-task-grid {
        grid-auto-rows: 260px !important;
    }

    html body .approval-hub .approval-task-grid > .approval-task-card {
        height: 260px !important;
        min-height: 260px !important;
        max-height: 260px !important;
    }
}
/* Approval actions stay in one fixed footer position with one shared button style. */
html body .approval-hub .approval-task-card {
    padding-bottom: 55px !important;
}

html body .approval-hub .approval-task-card.incomplete-expense-task {
    padding-bottom: 105px !important;
}

html body .approval-hub .approval-task-card > form:not(.approval-expense-review-form),
html body .approval-hub .approval-task-card > form.approval-review-buttons {
    position: absolute !important;
    right: 14px !important;
    bottom: 12px !important;
    left: 18px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    width: auto !important;
    height: 32px !important;
    min-height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 8px !important;
}

html body .approval-hub .approval-task-card > form.approval-expense-review-form {
    position: absolute !important;
    right: 14px !important;
    bottom: 12px !important;
    left: 18px !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

html body .approval-hub .approval-expense-actions {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    min-height: 32px !important;
    gap: 8px !important;
}

html body .approval-hub button[name="decision"] {
    flex: 0 0 auto !important;
    width: 82px !important;
    min-width: 82px !important;
    height: 32px !important;
    min-height: 32px !important;
    margin: 0 !important;
    padding: 5px 10px !important;
    border-radius: 7px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 20px !important;
    white-space: nowrap !important;
}

html body .approval-hub button[name="decision"][value="approved"] {
    order: 2;
    border: 1px solid #21785d !important;
    color: #fff !important;
    background: #21785d !important;
}

html body .approval-hub button[name="decision"][value="rejected"] {
    order: 1;
    border: 1px solid #d7a6a0 !important;
    color: #a13b31 !important;
    background: #fff !important;
}

html body .approval-hub .approval-expense-actions > .approval-view-procurement {
    order: 0;
    height: 32px !important;
    min-height: 32px !important;
    margin-right: auto !important;
}

html body .approval-hub .approval-task-card > .approval-complete-income,
html body .approval-hub .procurement-inventory-open {
    position: absolute !important;
    right: 14px !important;
    bottom: 12px !important;
    left: auto !important;
    width: auto !important;
    min-width: 112px !important;
    height: 32px !important;
    min-height: 32px !important;
    margin: 0 !important;
}

html body .procurement-inventory-review-form footer {
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

html body .procurement-inventory-review-form footer button {
    width: 82px !important;
    min-width: 82px !important;
    height: 32px !important;
    margin: 0 !important;
    border-radius: 7px !important;
}

/* Review locks float over the beginning of the first field, centered vertically. */
html body table tr.approval-pending-row > td:first-child {
    position: relative;
    z-index: 4;
    overflow: visible !important;
    vertical-align: middle !important;
}

html body table tr.approval-pending-row > td:first-child::after {
    content: "🔒";
    position: absolute;
    z-index: 8;
    top: 50%;
    left: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 0;
    transform: translateY(-50%);
    border: 1px solid #e0b45a;
    border-radius: 50%;
    color: #8a5a00;
    background: #fff6d8;
    box-shadow: 0 2px 7px rgba(111, 79, 15, .16);
    font-size: 12px;
    line-height: 22px;
    pointer-events: none;
}

/* Procurement inventory approval actions stay compact and visually consistent. */
html body .approval-hub .procurement-inventory-open {
    width: 118px !important;
    min-width: 118px !important;
    height: 34px !important;
    min-height: 34px !important;
    padding: 6px 12px !important;
    border: 1px solid #7657a3 !important;
    border-radius: 8px !important;
    color: #fff !important;
    background: #7657a3 !important;
    box-shadow: 0 3px 9px rgba(91, 63, 132, .18) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 20px !important;
}

html body .approval-hub .procurement-inventory-open:hover {
    border-color: #62458d !important;
    background: #62458d !important;
}

html body .procurement-inventory-review-form footer {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    margin-top: 16px !important;
}

html body .procurement-inventory-review-form footer button {
    flex: 0 0 88px !important;
    width: 88px !important;
    min-width: 88px !important;
    height: 34px !important;
    min-height: 34px !important;
    margin: 0 !important;
    padding: 6px 12px !important;
    border-radius: 8px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 20px !important;
}

html body .procurement-inventory-review-form footer button[value="rejected"] {
    order: 1 !important;
    border: 1px solid #d7a6a0 !important;
    color: #a13b31 !important;
    background: #fff !important;
}

html body .procurement-inventory-review-form footer button[value="approved"] {
    order: 2 !important;
    border: 1px solid #21785d !important;
    color: #fff !important;
    background: #21785d !important;
}

/* Pending detail pages show the current stage and configured reviewers. */
html body .detail-review-waiting {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 12px 18px 0;
    padding: 10px 13px;
    border: 1px solid #ead49c;
    border-radius: 10px;
    color: #684c13;
    background: #fff9e8;
    box-shadow: 0 3px 10px rgba(105, 76, 18, .06);
}

html body .detail-review-waiting > span {
    flex: 0 0 auto;
    padding: 4px 9px;
    border-radius: 999px;
    color: #7b5609;
    background: #f6df9e;
    font-size: 12px;
    font-weight: 800;
}

html body .detail-review-waiting > div {
    min-width: 0;
}

html body .detail-review-waiting b,
html body .detail-review-waiting small {
    display: block;
    overflow-wrap: anywhere;
}

html body .detail-review-waiting small {
    margin-top: 2px;
    color: #8b7650;
    font-size: 11px;
}

html body .detail-review-waiting + .generic-detail-page .approval-lock-notice {
    display: none !important;
}

html body .detail-review-waiting ~ .inventory-document-detail .inventory-document-waiting-notice,
html body .detail-review-waiting ~ .inventory-document-detail .inventory-document-detail-head .status-warn {
    display: none !important;
}

@media (max-width: 600px) {
    html body .detail-review-waiting {
        margin: 9px 10px 0;
        padding: 9px 10px;
    }
}

/* Single/batch wage entry header and persistent employee picker. */
.oa-modal:has(#piecework-form) .oa-modal-head,
.oa-modal:has(#temp-work-form) .oa-modal-head {
    justify-content: flex-start;
    gap: 8px;
}
.oa-modal:has(#piecework-form) .oa-modal-head h2,
.oa-modal:has(#temp-work-form) .oa-modal-head h2 {
    margin-right: auto;
}
.oa-modal:has(#piecework-form) :is(.piecework-mode-toggle,.oa-modal-close),
.oa-modal:has(#temp-work-form) :is(.temp-work-mode-toggle,.oa-modal-close) {
    align-self: center;
    box-sizing: border-box;
    height: 38px !important;
    min-height: 38px !important;
    margin: 0 !important;
}
.oa-modal:has(#piecework-form) :is(.piecework-mode-toggle,.temp-work-mode-toggle),
.oa-modal:has(#temp-work-form) :is(.piecework-mode-toggle,.temp-work-mode-toggle) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1 !important;
}
.batch-employee-continuous-picker {
    position: relative;
    z-index: 40;
    width: 100%;
    margin-top: 7px;
}
.batch-employee-continuous-display {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100% !important;
    height: 44px;
    margin: 0 !important;
    padding: 8px 12px !important;
    border: 1px solid var(--line) !important;
    color: #30463b !important;
    background: #fff !important;
    font-weight: 400 !important;
    text-align: left;
}
.batch-employee-continuous-display::after {
    content: "⌄";
    color: #6d7f75;
}
.batch-employee-continuous-picker.is-open .batch-employee-continuous-display::after {
    content: "⌃";
}
.batch-employee-continuous-menu {
    position: absolute;
    z-index: 10050;
    top: calc(100% + 5px);
    right: 0;
    left: 0;
    display: none;
    max-height: 330px;
    padding: 9px;
    border: 1px solid #cad9d1;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(20,49,37,.2);
}
.batch-employee-continuous-picker.is-open .batch-employee-continuous-menu {
    display: grid;
    gap: 7px;
}
.batch-employee-continuous-search {
    width: 100%;
    height: 38px;
    margin: 0 !important;
}
.batch-employee-continuous-choices {
    display: grid;
    gap: 3px;
    max-height: 255px;
    overflow-y: auto;
}
.batch-employee-continuous-choice {
    display: flex !important;
    align-items: center;
    gap: 9px;
    min-height: 36px;
    margin: 0 !important;
    padding: 6px 8px;
    border-radius: 7px;
    cursor: pointer;
}
.batch-employee-continuous-choice:hover,
.batch-employee-continuous-choice:has(input:checked) {
    background: #edf6f1;
}
.batch-employee-continuous-choice input {
    flex: 0 0 auto;
    width: 16px !important;
    height: 16px !important;
    min-height: 16px !important;
    margin: 0 !important;
}
.batch-employee-continuous-choice.is-all {
    border-bottom: 1px solid #e2e9e5;
    border-radius: 7px 7px 0 0;
    font-weight: 700;
}

/* Batch wage employee menu is portalled to the dialog's top layer. */
.oa-modal.dropdown-portal-host:has(> .batch-employee-continuous-menu) {
    overflow: visible !important;
}
.oa-modal.dropdown-portal-host > .batch-employee-continuous-menu {
    max-width: calc(100vw - 16px);
    overflow: hidden;
    isolation: isolate;
}

/* Customer quotation list: compact two-row mobile cards with direct actions. */
.quotation-mobile-product-count {
    display: none;
}
.customer-quotation-list-table .quotation-list-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
}
.customer-quotation-list-table .quotation-list-actions .quotation-preview-button {
    width: auto !important;
    min-width: 54px !important;
    height: 32px !important;
    margin: 0 !important;
    padding: 5px 10px !important;
    border-radius: 7px !important;
    font-size: 12px !important;
    line-height: 20px !important;
}

@media (min-width: 901px) {
    .customer-quotation-list-table {
        width: 100%;
        table-layout: fixed;
    }
    .customer-quotation-list-table th:nth-child(1),
    .customer-quotation-list-table td:nth-child(1) { width: 12%; white-space: nowrap; }
    .customer-quotation-list-table th:nth-child(2),
    .customer-quotation-list-table td:nth-child(2) { width: 12%; white-space: nowrap; }
    .customer-quotation-list-table th:nth-child(3),
    .customer-quotation-list-table td:nth-child(3) { width: 10%; white-space: nowrap; }
    .customer-quotation-list-table th:nth-child(4),
    .customer-quotation-list-table td:nth-child(4) { width: 13%; white-space: nowrap; }
    .customer-quotation-list-table th:nth-child(5),
    .customer-quotation-list-table td:nth-child(5) { width: 9%; white-space: nowrap; }
    .customer-quotation-list-table th:nth-child(6),
    .customer-quotation-list-table td:nth-child(6) { width: 25%; }
    .customer-quotation-list-table th:nth-child(7),
    .customer-quotation-list-table td:nth-child(7) { width: 9%; white-space: nowrap; }
    .customer-quotation-list-table th:nth-child(8),
    .customer-quotation-list-table td:nth-child(8) { width: 10%; white-space: nowrap; overflow: visible !important; }
    .customer-quotation-list-table .quotation-list-remark {
        overflow-wrap: anywhere;
        white-space: normal;
    }
}

.customer-price-compare-open {
    flex: 0 0 auto;
    width: auto !important;
    min-width: 96px;
    height: 42px;
    margin: 0 !important;
    padding: 8px 14px !important;
    color: #17634f !important;
    border: 1px solid #bcd2c7 !important;
    background: #f2f8f5 !important;
}

.customer-price-compare-dialog {
    width: min(1180px, 96vw) !important;
    max-width: none !important;
    height: min(820px, 92vh) !important;
}

.customer-price-compare-dialog.is-fullscreen {
    width: 100vw !important;
    max-width: none !important;
    height: 100vh !important;
    max-height: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
}

.customer-price-compare-head-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.customer-price-compare-fullscreen {
    width: auto !important;
    min-width: 68px;
    height: 36px;
    margin: 0 !important;
    padding: 6px 12px !important;
    color: #17634f !important;
    border: 1px solid #c5d8ce !important;
    background: #edf5f1 !important;
}

.customer-price-compare-dialog .oa-modal-body {
    position: relative;
    height: calc(90vh - 75px);
    padding: 0 !important;
    overflow: hidden !important;
}

.customer-price-compare-dialog.is-fullscreen .oa-modal-body {
    height: calc(100vh - 75px);
    max-height: none;
}

.customer-quotation-list-panel .quotation-list-actions,
.customer-quotation-list-panel .quotation-preview-button {
    position: relative;
    z-index: 2;
    overflow: visible !important;
}

.customer-price-compare-frame {
    width: 100%;
    height: 100%;
    border: 0;
}

.customer-price-compare-loader {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #66776f;
    background: #f4f6f3;
}
@media(max-width:900px) {
    .workspace .table-wrap table.customer-quotation-list-table.oa-mobile-card-table[data-mobile-module="customer-prices"] > tbody > tr {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto !important;
        grid-template-rows: auto auto !important;
        align-items: center !important;
        gap: 8px 10px !important;
        padding: 11px 12px !important;
    }
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="报价日期"],
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="报价单号"],
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="客户"],
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="操作"] {
        position: static !important;
        display: flex !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        border: 0 !important;
    }
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="报价日期"] {
        grid-column: 1 !important;
        grid-row: 1 !important;
        justify-self: start !important;
        color: #64756d !important;
        font-size: 12px !important;
    }
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="报价单号"] {
        grid-column: 2 !important;
        grid-row: 1 !important;
        justify-self: end !important;
        color: #315749 !important;
        font-size: 12px !important;
        white-space: nowrap !important;
    }
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="客户"] {
        grid-column: 1 !important;
        grid-row: 2 !important;
        align-items: baseline !important;
        justify-self: stretch !important;
        padding-top: 7px !important;
        border-top: 1px dashed #e4ebe7 !important;
        color: #223c31 !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        white-space: nowrap !important;
    }
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="客户"] .quotation-mobile-product-count {
        display: inline !important;
        margin-left: 3px;
        color: #788981;
        font-size: 12px;
        font-weight: 500;
    }
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="产品数量"] {
        display: none !important;
    }
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="操作"] {
        grid-column: 2 !important;
        grid-row: 2 !important;
        justify-self: end !important;
        padding-top: 7px !important;
        border-top: 1px dashed #e4ebe7 !important;
    }
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="报价日期"]::before,
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="报价单号"]::before,
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="客户"]::before,
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="操作"]::before {
        display: none !important;
    }
    .workspace .table-wrap table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr > td[data-label="报价日期"].mobile-date-only::after {
        font-size: 12px !important;
    }
    .customer-quotation-list-table .quotation-list-actions .quotation-preview-button {
        min-width: 48px !important;
        height: 30px !important;
        padding: 4px 8px !important;
        line-height: 20px !important;
    }
}

/* Keep this final so generic mobile table rules cannot rearrange quotation cards. */
@media(max-width:900px) {
    .workspace table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) {
        grid-template-columns: minmax(0,1fr) auto !important;
        grid-template-rows: auto auto !important;
    }
    .workspace table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td {
        display: none !important;
    }
    .workspace table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(4),
    .workspace table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(2),
    .workspace table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(1),
    .workspace table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(8) {
        display: flex !important;
        position: static !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 !important;
        overflow: visible !important;
    }
    .workspace table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(4) {
        grid-area: 1 / 1 !important;
        padding: 0 !important;
        border: 0 !important;
        align-items: baseline !important;
        justify-self: stretch !important;
    }
    .workspace table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(2) {
        grid-area: 1 / 2 !important;
        padding: 0 !important;
        border: 0 !important;
        justify-self: end !important;
    }
    .workspace table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(1) {
        grid-area: 2 / 1 !important;
        padding: 7px 0 0 !important;
        border: 0 !important;
        border-top: 1px dashed #e4ebe7 !important;
        justify-self: stretch !important;
    }
    .workspace table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(8) {
        grid-area: 2 / 2 !important;
        padding: 7px 0 0 !important;
        border: 0 !important;
        border-top: 1px dashed #e4ebe7 !important;
        justify-self: end !important;
    }
    .workspace table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(1)::before,
    .workspace table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(1)::after,
    .workspace table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(2)::before,
    .workspace table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(2)::after,
    .workspace table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(4)::before,
    .workspace table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(4)::after,
    .workspace table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(8)::before,
    .workspace table.customer-quotation-list-table[data-mobile-module="customer-prices"] > tbody > tr:not(:has(td.empty)) > td:nth-child(8)::after {
        display: none !important;
        content: none !important;
    }
}

/* v0.15.661: every mobile list uses search/create on row one and filters on row two. */
@media(max-width:900px) {
    html body .workspace main .panel.block > .list-primary-actions.mobile-list-toolbar-two-rows {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto auto !important;
        grid-auto-rows: auto !important;
        align-items: center !important;
        gap: 8px !important;
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 0 10px !important;
    }
    html body .workspace main .mobile-list-toolbar-two-rows > .mobile-toolbar-search {
        grid-column: 1 !important;
        grid-row: 1 !important;
        order: 0 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 !important;
    }
    html body .workspace main .mobile-list-toolbar-two-rows > .mobile-toolbar-view {
        grid-column: 2 !important;
        grid-row: 1 !important;
        order: 0 !important;
        width: auto !important;
        min-width: 0 !important;
        margin: 0 !important;
        justify-self: end !important;
    }
    html body .workspace main .mobile-list-toolbar-two-rows > .mobile-toolbar-create {
        grid-column: 3 !important;
        grid-row: 1 !important;
        order: 0 !important;
        width: auto !important;
        min-width: 58px !important;
        max-width: none !important;
        margin: 0 !important;
        padding-right: 12px !important;
        padding-left: 12px !important;
        justify-self: end !important;
        white-space: nowrap !important;
    }
    html body .workspace main .mobile-list-toolbar-two-rows > .mobile-toolbar-filter {
        grid-column: 1 / -1 !important;
        grid-row: 2 !important;
        order: 0 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 !important;
        justify-self: stretch !important;
    }
    html body .workspace main .mobile-list-toolbar-two-rows > .mobile-toolbar-filter.catalog-company-tabs {
        overflow-x: auto !important;
    }
    html body .workspace main .mobile-list-toolbar-two-rows > .mobile-toolbar-filter.employee-filter-bar {
        box-sizing: border-box !important;
    }
    html body .workspace main .mobile-list-filter-stack-panel {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
    }
    html body .workspace main .mobile-list-filter-stack-panel > .mobile-list-toolbar-two-rows {
        order: 1 !important;
    }
    html body .workspace main .mobile-list-filter-stack-panel > .mobile-external-list-filter {
        order: 2 !important;
        grid-column: auto !important;
        grid-row: auto !important;
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 0 10px !important;
    }
    html body .workspace main .mobile-list-filter-stack-panel > :not(.mobile-list-toolbar-two-rows):not(.mobile-external-list-filter) {
        order: 3 !important;
    }
    html body .app-shell .workspace main .catalog-aligned-filter-panel.catalog-aligned-customer-filters > .customer-list-toolbar.catalog-aligned-filter-actions {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto auto !important;
        grid-column: auto !important;
        grid-row: auto !important;
        width: 100% !important;
        margin: 0 0 10px !important;
    }
    html body .app-shell .workspace main .catalog-aligned-filter-panel.catalog-aligned-customer-filters > .customer-type-list-tabs {
        grid-column: auto !important;
        grid-row: auto !important;
        width: 100% !important;
        margin: 0 0 10px !important;
    }
}
.detail-field-__expense_attachments_json,.detail-field-__employee_attachments_json{display:none!important}

/* Employee attachments use the same full-width control as expense attachments. */
.employee-field-attachments{grid-column:1/-1!important;min-width:0}
.employee-field-attachments.oa-standard-attachment-field{width:100%;max-width:none}
.expense-attachment-field{display:block!important}
.expense-attachment-field>input[type=file]{display:block;width:100%;margin-top:6px}
.expense-selected-file-list,.expense-attachment-list{display:grid;gap:6px;margin-top:8px}
.expense-selected-file-item,.expense-attachment-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px;min-height:38px;padding:6px 9px;border:1px solid #dfe8e3;border-radius:8px;background:#f7f9f8}
.expense-file-icon{font-size:16px;line-height:1}
.expense-file-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:#273c33}
.expense-selected-file-item>small,.expense-attachment-item>small{color:#78867f;white-space:nowrap}
.expense-file-actions{display:flex;align-items:center;gap:4px}
.expense-file-actions a,.expense-file-actions button{display:inline-flex;align-items:center;width:auto!important;min-width:0!important;height:28px!important;margin:0!important;padding:3px 7px!important;border:0!important;border-radius:5px!important;color:#286d58!important;background:transparent!important;font-size:12px!important;line-height:1!important;text-decoration:none!important;cursor:pointer}
.expense-file-actions a:hover,.expense-file-actions button:hover{background:#e6f1ec!important}
.expense-file-actions .danger{color:#aa4942!important}
.expense-file-actions .danger:hover{background:#faecea!important}
.expense-attachment-manager{margin-top:14px;padding:12px;border:1px solid #dfe8e3;border-radius:10px;background:#fff}
.expense-attachment-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.expense-attachment-upload{display:inline-flex!important;align-items:center;width:auto!important;margin:0!important;cursor:pointer}
.expense-attachment-upload input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}
.expense-attachment-upload span{display:inline-flex;align-items:center;height:32px;padding:0 11px;border-radius:7px;color:#fff;background:#24785f;font-size:13px;white-space:nowrap}
.expense-attachment-upload:has(input:disabled) span{opacity:.55;cursor:wait}
.expense-attachment-empty{margin:4px 0;padding:10px;text-align:center;color:#849088;background:#f7f9f8;border-radius:7px}
.expense-attachment-note{display:block;margin-top:7px;color:#7a8780}
.expense-attachment-feedback{margin:8px 0 0;padding:7px 9px;border-radius:7px;color:#24674f;background:#eaf5f0;font-size:13px}
.expense-attachment-feedback.is-error{color:#9b413b;background:#faecea}
@media(max-width:600px){.expense-selected-file-item,.expense-attachment-item{grid-template-columns:auto minmax(0,1fr) auto}.expense-selected-file-item>small,.expense-attachment-item>small{display:none}.expense-file-actions{grid-column:2/-1;justify-content:flex-end}.expense-file-actions a,.expense-file-actions button{height:30px!important;padding:4px 8px!important}}

/* v0.15.697 compact expense creation and collapsible attachment actions */
#expense-create-form,.record-stable-detail-form.expense-detail-create-layout{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important;align-items:end}
#expense-create-form>label,.record-stable-detail-form.expense-detail-create-layout>label{margin:0}
.record-stable-detail-form.expense-detail-create-layout .generic-edit-grid{display:contents!important}
.record-stable-detail-form.expense-detail-create-layout .record-stable-native-submit{display:none!important}
.record-stable-detail-form.income-detail-create-layout .generic-edit-grid{display:contents!important}
.record-stable-detail-form.expense-detail-create-layout .expense-detail-attachment-field{width:100%!important;box-sizing:border-box!important}
#expense-create-form>label{margin:0}
.expense-primary-row,.expense-linked-row,.expense-transaction-row,.expense-refund-row,.expense-recipient-row,.expense-attachment-row{grid-column:1/-1;display:grid;align-items:end;gap:10px 12px;min-width:0}
.expense-primary-row{grid-template-columns:repeat(4,minmax(0,1fr))}
.expense-primary-row:not(:has(>.expense-sales-order-field:not([hidden]))){grid-template-columns:repeat(3,minmax(0,1fr))}
.expense-linked-row{grid-template-columns:repeat(3,minmax(0,1fr))}
.expense-linked-row:not(:has(>label:not([hidden]))){display:none!important}
.expense-primary-row>label,.expense-linked-row>label,.expense-transaction-row>label,.expense-refund-row>label,.expense-recipient-row>label,.expense-attachment-row>label{min-width:0;margin:0}
.expense-transaction-row,.expense-transaction-row.has-sales-order{grid-template-columns:minmax(120px,.72fr) minmax(120px,.68fr) minmax(120px,.68fr) minmax(260px,1.8fr)}
.expense-transaction-row :is(input,select,.relation-search-combobox,.relation-search-display){box-sizing:border-box;width:100%!important;min-width:0!important}
.expense-description-field input{height:44px}
.expense-refund-row{grid-template-columns:minmax(0,1fr);align-items:start}
.expense-refund-row:not(:has(>label:not([hidden]))){display:none!important}
.expense-refund-after-sales-field{width:100%!important}
.expense-refund-after-sales-field .meal-multi-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.expense-refund-after-sales-field .meal-multi-control{position:relative;width:100%;min-width:0;margin-top:6px}
.expense-refund-after-sales-field .meal-multi-trigger{display:flex!important;width:100%!important;height:44px!important;align-items:center;justify-content:space-between;margin:0!important;padding:0 12px!important;border:1px solid #d6e1db!important;border-radius:8px!important;color:#33483e!important;background:#fff!important;font-weight:500!important;text-align:left!important}
.expense-refund-after-sales-field .meal-multi-trigger>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.expense-refund-after-sales-field .meal-multi-trigger>i{margin-left:8px;color:#77877f;font-style:normal;transition:transform .16s}
.expense-refund-after-sales-field .meal-multi-control.is-open .meal-multi-trigger>i{transform:rotate(180deg)}
.expense-refund-after-sales-field .meal-multi-menu{position:absolute;z-index:16000;top:49px;right:0;left:0;width:100%;max-height:300px;overflow:auto;padding:7px;border:1px solid #d5e1da;border-radius:10px;background:#fff;box-shadow:0 14px 36px rgba(30,62,48,.18)}
.expense-refund-after-sales-field .meal-multi-menu[hidden]{display:none!important}
.expense-refund-after-sales-field .meal-multi-search{width:100%!important;height:36px!important;margin:0 0 6px!important;padding:7px 9px!important}
.expense-refund-after-sales-field .meal-multi-option{display:flex!important;width:100%!important;min-height:36px!important;align-items:center;gap:8px;margin:0!important;padding:7px 9px!important;border:0!important;border-radius:7px!important;color:#30453b!important;background:#fff!important;text-align:left!important;font-weight:500!important}
.expense-refund-after-sales-field .meal-multi-option:hover{background:#eef7f2!important}
.expense-refund-after-sales-field .meal-multi-option.is-selected{color:#17664d!important;background:#e7f4ed!important}
.expense-refund-after-sales-field .meal-multi-check{display:grid;flex:0 0 18px;width:18px;height:18px;place-items:center;border:1px solid #b9cac1;border-radius:5px;color:transparent;font-size:12px}
.expense-refund-after-sales-field .meal-multi-option.is-selected .meal-multi-check{border-color:#238160;color:#fff;background:#238160}
.expense-refund-after-sales-field small{display:block;margin-top:6px;color:var(--muted);font-size:12px}
#expense-create-form [name="amount"].is-calculated{color:#17664d;background:#eef7f2;font-weight:700}
.expense-recipient-row,.expense-attachment-row{grid-template-columns:minmax(0,1fr);align-items:start}
.expense-attachment-row .expense-attachment-field{display:block!important;min-width:0}
.expense-create-upload-line{display:flex;align-items:center;align-content:flex-start;flex-wrap:wrap;gap:6px 10px;width:100%;margin-top:6px;overflow:visible}
.expense-create-upload-control{position:relative!important;display:flex!important;align-items:center!important;flex:0 0 calc((100% - 24px)*.21875)!important;width:calc((100% - 24px)*.21875)!important;min-width:150px!important;height:44px!important;box-sizing:border-box!important;overflow:hidden!important;border:1px solid #ced8d1!important;border-radius:9px!important;background:#fbfcfb!important}
.expense-create-upload-control:focus-within,.expense-create-upload-control:hover{border-color:#76a793!important;background:#f6faf8!important}
.expense-create-upload-control>input[type=file]{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.expense-create-file-picker{display:flex!important;align-items:center!important;justify-content:flex-start!important;align-self:stretch!important;flex:1 1 auto!important;width:auto!important;min-width:0!important;height:100%!important;min-height:0!important;margin:0!important;padding:0 10px 0 12px!important;overflow:hidden!important;border:0!important;border-radius:0!important;color:#34443d!important;background:transparent!important;font:inherit!important;line-height:1.2!important;text-align:left!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.expense-create-file-picker:hover{background:transparent!important}
.expense-create-scan-picker{display:flex!important;align-items:center!important;justify-content:center!important;align-self:stretch!important;flex:0 0 42px!important;width:42px!important;min-width:42px!important;height:100%!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-left:1px solid #dbe4df!important;border-radius:0!important;color:#24765d!important;background:transparent!important;line-height:1!important}
.expense-create-scan-picker:hover{background:#eaf4ef!important}.expense-create-scan-picker svg{display:block;width:21px;height:21px;margin:0;fill:currentColor}.expense-create-scan-picker:disabled{opacity:.55}
.expense-local-file-preview-dialog{width:min(920px,94vw)!important;height:min(760px,90vh)!important;overflow:hidden!important}
.expense-local-file-preview-dialog>.oa-modal-body{height:calc(100% - 68px)!important;min-height:320px!important;padding:12px!important;overflow:auto!important;background:#eef2ef!important}
.expense-local-file-preview-body{display:flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important}
.expense-local-file-preview-body>img{display:block;max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;background:#fff}
.expense-local-file-preview-body>iframe{display:block;width:100%;height:100%;min-height:580px;border:0;border-radius:8px;background:#fff}
.expense-local-file-preview-body>pre{width:100%;min-height:100%;box-sizing:border-box;margin:0;padding:16px;overflow:auto;border-radius:8px;background:#fff;white-space:pre-wrap;word-break:break-word}
.expense-local-file-preview-note{text-align:center}.expense-local-file-preview-note b{font-size:18px}.expense-local-file-preview-note p{color:#718078}.expense-local-file-preview-note button{width:auto!important;min-width:110px!important;margin:10px auto 0!important}
.expense-create-upload-line>.expense-selected-file-list{display:contents!important;margin:0!important;padding:0!important}
.expense-attachment-field>small{display:none!important}
.expense-attachment-field>input[type=file]{height:44px;margin-top:6px}
.expense-recipient-field textarea{box-sizing:border-box;width:100%;height:44px!important;min-height:44px!important;margin-top:6px;resize:vertical}
#expense-create-form .expense-create-submit{grid-column:1/-1!important;justify-self:end;width:auto!important;min-width:112px;margin:0!important}
.expense-selected-file-list,.expense-attachment-list{display:flex!important;flex-wrap:wrap;align-items:flex-start;gap:6px!important}
.expense-selected-file-item,.expense-attachment-item{display:inline-grid!important;grid-template-columns:minmax(0,max-content) auto!important;flex:0 1 auto;width:max-content!important;max-width:100%;cursor:pointer}
.expense-file-name{max-width:260px}
.expense-attachment-empty{flex:1 0 100%}
.expense-selected-file-item>small,.expense-attachment-item>small{display:none!important}
.expense-selected-file-item .expense-file-actions,.expense-attachment-item .expense-file-actions{display:none!important;grid-column:1/-1;justify-content:flex-end;padding-top:2px}
.expense-selected-file-item.is-open .expense-file-actions,.expense-attachment-item.is-open .expense-file-actions,.expense-selected-file-item.is-menu-open .expense-file-actions,.expense-attachment-item.is-menu-open .expense-file-actions{display:flex!important}
.expense-selected-file-item.is-open,.expense-attachment-item.is-open,.expense-selected-file-item.is-menu-open,.expense-attachment-item.is-menu-open{background:#eef5f1}
.expense-selected-file-item .expense-file-name{min-width:0;width:auto!important;height:auto!important;margin:0!important;padding:0!important;border:0!important;color:#236f58!important;background:transparent!important;font:inherit!important;text-align:left!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.expense-selected-file-item .expense-file-name:hover{text-decoration:underline}
.expense-selected-file-item .expense-file-more{display:grid!important;place-items:center;width:25px!important;height:25px!important;min-width:25px!important;margin:0!important;padding:0!important;border:0!important;border-radius:6px!important;color:#64736b!important;background:#e8efeb!important;font-size:10px!important;letter-spacing:-1px}
.expense-attachment-row .expense-selected-file-item{position:relative!important;overflow:visible!important;padding-left:10px!important}
.expense-attachment-row .expense-selected-file-item .expense-file-actions{position:absolute!important;z-index:180;top:calc(100% + 5px);right:0;display:none!important;min-width:112px;padding:6px!important;border:1px solid #d9e4de;border-radius:9px;background:#fff;box-shadow:0 10px 28px rgba(28,62,49,.18)}
.expense-attachment-row .expense-selected-file-item.is-menu-open .expense-file-actions{display:flex!important;align-items:stretch!important;flex-direction:column!important;gap:3px!important}
.expense-attachment-row .expense-selected-file-item .expense-file-actions button{justify-content:flex-start!important;width:100%!important;height:32px!important;margin:0!important;padding:5px 9px!important;text-align:left!important}
.expense-detail-attachment-field{grid-column:1/-1!important;margin:0!important;padding:13px!important;border:0!important;border-radius:9px!important;background:#f4f7f5!important;overflow:visible!important}
.expense-detail-attachment-field>small{display:block!important;margin:0 0 6px!important;color:#74837b!important;font-weight:400!important}
.expense-detail-attachment-line{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:6px!important;overflow:visible!important}
.expense-detail-upload-control{position:relative!important;display:flex!important;align-items:center!important;overflow:hidden!important;flex:0 0 calc((100% - 24px)*.21875)!important;width:calc((100% - 24px)*.21875)!important;min-width:150px!important;height:44px!important;border:1px solid #ced8d1!important;border-radius:9px!important;background:#fbfcfb!important}
.expense-detail-upload-control .expense-detail-attachment-upload{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.expense-detail-file-picker{display:flex!important;align-items:center!important;justify-content:flex-start!important;box-sizing:border-box!important;flex:1 1 auto!important;width:auto!important;min-width:0!important;height:44px!important;min-height:44px!important;margin:0!important;padding:0 10px 0 12px!important;overflow:hidden!important;border:0!important;border-radius:0!important;color:#34443d!important;background:transparent!important;font:inherit!important;line-height:44px!important;text-align:left!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.expense-detail-file-picker:hover{border-color:#76a793!important;background:#f6faf8!important}
.expense-detail-file-picker:disabled,.expense-detail-scan-picker:disabled{cursor:not-allowed!important;opacity:.45!important;pointer-events:none!important;background:#eef2f0!important}
.expense-detail-attachment-field.is-attachment-readonly .expense-file-more{cursor:not-allowed!important;opacity:.38!important;pointer-events:none!important}
.expense-detail-attachment-field.is-attachment-readonly .expense-file-actions{display:none!important}
.expense-detail-attachment-field .expense-file-name{display:inline-flex!important;align-items:center!important;width:auto!important;height:auto!important;min-height:24px!important;margin:0!important;padding:0!important;border:0!important;color:#236f58!important;background:transparent!important;font:inherit!important;font-weight:600!important;line-height:1.35!important;text-align:left!important;cursor:pointer!important}
.expense-detail-attachment-field .expense-file-name:hover{text-decoration:underline!important}
.expense-saved-file-preview-dialog .expense-local-file-preview-note .button{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:auto!important;min-width:110px!important;height:40px!important;margin:10px auto 0!important;padding:0 16px!important;border-radius:8px!important;color:#fff!important;background:#176d57!important;text-decoration:none!important}
.expense-detail-attachment-field .expense-attachment-list{display:flex!important;flex:1 1 280px!important;align-items:flex-start!important;flex-wrap:wrap!important;gap:6px!important;min-width:0!important;margin:0!important;overflow:visible!important}
.expense-detail-attachment-field .expense-attachment-empty{display:flex!important;align-items:center!important;height:44px!important;margin:0!important;padding:0 11px!important;background:transparent!important}
.expense-detail-attachment-field .expense-attachment-item{position:relative!important;display:inline-flex!important;align-items:center!important;gap:5px!important;width:max-content!important;max-width:100%!important;min-height:44px!important;padding:6px 7px 6px 10px!important;overflow:visible!important}
.expense-detail-attachment-field .expense-attachment-item .expense-file-more{flex:0 0 25px!important;margin-left:2px!important}.expense-detail-attachment-field .expense-attachment-item .expense-file-actions{position:fixed!important;z-index:2147483600!important;top:auto;right:auto;display:none!important;min-width:112px;padding:6px!important;border:1px solid #d9e4de;border-radius:9px;background:#fff;box-shadow:0 10px 28px rgba(28,62,49,.28)}
.expense-detail-attachment-field .expense-attachment-item.is-menu-open .expense-file-actions{display:flex!important;align-items:stretch!important;flex-direction:column!important;gap:3px!important}
.expense-detail-attachment-field .expense-attachment-item .expense-file-actions a,.expense-detail-attachment-field .expense-attachment-item .expense-file-actions button{justify-content:flex-start!important;width:100%!important;height:32px!important;margin:0!important;padding:5px 9px!important;text-align:left!important}
.expense-detail-attachment-field .expense-attachment-feedback{width:100%!important;margin:8px 0 0!important}
.expense-detail-attachment-field .expense-attachment-note{display:block!important;margin-top:6px!important;color:#7a8780!important;font-size:11px!important;font-weight:400!important}
@media(max-width:620px){.expense-detail-upload-control{flex-basis:100%!important;width:100%!important}.expense-detail-attachment-field .expense-attachment-list{flex-basis:100%!important}}
.finance-file-upload-field .expense-selected-file-item{grid-template-columns:minmax(70px,max-content) auto!important;max-width:260px}
.invoice-attachment-field .expense-create-upload-control{flex-basis:190px!important;width:190px!important}.invoice-current-file-wrap[hidden]{display:none!important}.invoice-current-file-wrap{display:inline-flex!important;margin:6px 0 0!important}.invoice-attachment-field .expense-selected-file-item{display:inline-grid!important;grid-template-columns:minmax(0,1fr) 25px!important;align-items:center!important;width:auto!important;max-width:min(280px,100%)!important;min-height:44px!important;padding:6px 7px 6px 10px!important;white-space:nowrap!important}.invoice-attachment-field .expense-file-name{min-width:0!important;max-width:235px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.invoice-attachment-field .expense-file-more{grid-column:2!important;grid-row:1!important;flex:0 0 25px!important}.invoice-current-file-wrap .expense-selected-file-item{grid-template-columns:minmax(0,1fr)!important}
/* Invoice registration uses a native hit area for file selection.  This avoids
   relying on a scripted click, which some employee sessions block. */
.invoice-attachment-field .expense-create-upload-control>input[type=file]{left:0!important;top:0!important;width:calc(100% - 42px)!important;height:100%!important;opacity:0!important;pointer-events:auto!important;cursor:pointer!important;z-index:2!important}
.invoice-attachment-field .expense-create-file-picker{pointer-events:none!important}
.invoice-attachment-field .expense-create-scan-picker{position:relative!important;z-index:3!important}
.product-image-attachment-field{min-width:0!important;overflow:visible!important}
.product-image-attachment-field>.field-caption{display:block;margin-bottom:0}
.product-image-attachment-field .expense-create-upload-line{margin-top:6px!important}
.product-image-attachment-field .expense-create-upload-control{flex-basis:190px!important;width:190px!important;min-width:150px!important}
.product-image-attachment-field .expense-selected-file-item{position:relative!important;display:inline-flex!important;align-items:center!important;overflow:visible!important;min-height:44px!important;padding:6px 7px 6px 10px!important;border-radius:8px!important;background:#f1f6f3!important}
.product-image-attachment-field .expense-file-name{max-width:220px!important;font-weight:600!important}
.product-image-attachment-field .expense-file-more{flex:0 0 25px!important;margin-left:5px!important}
.product-image-attachment-field .expense-file-actions{position:absolute!important;z-index:2147483600!important;top:calc(100% + 5px)!important;right:0!important;display:none!important;min-width:112px!important;padding:6px!important;border:1px solid #d9e4de!important;border-radius:9px!important;background:#fff!important;box-shadow:0 10px 28px rgba(28,62,49,.25)!important}
.product-image-attachment-field .expense-selected-file-item.is-menu-open .expense-file-actions{display:flex!important;align-items:stretch!important;flex-direction:column!important;gap:3px!important}
.product-image-attachment-field .expense-file-actions button{justify-content:flex-start!important;width:100%!important;height:32px!important;margin:0!important;padding:5px 9px!important;border:0!important;background:transparent!important;text-align:left!important}
.product-image-attachment-field .expense-file-actions button:hover{background:#eef5f1!important}.product-image-attachment-field .expense-file-actions button.danger{color:#a54038!important}
.record-stable-detail-form:not(.is-editing) .product-image-attachment-field .expense-create-file-picker,.record-stable-detail-form:not(.is-editing) .product-image-attachment-field .expense-create-scan-picker{cursor:not-allowed!important;opacity:.45!important;pointer-events:none!important;background:#eef2f0!important}
.record-stable-detail-form:not(.is-editing) .product-image-attachment-field .product-image-file-more{cursor:not-allowed!important;opacity:.38!important;pointer-events:none!important}
@media(max-width:620px){.product-image-attachment-field .expense-create-upload-control{flex-basis:100%!important;width:100%!important}.product-image-attachment-field .expense-selected-file-list{flex-basis:100%!important}}
.finance-file-upload-field .expense-selected-file-item>small{display:none!important}
.finance-file-upload-field .expense-selected-file-item .expense-file-actions{grid-column:1/-1}
.finance-file-upload-field .expense-selected-file-item{position:relative;overflow:visible!important}
.finance-file-upload-field .expense-selected-file-item .expense-file-actions{position:absolute!important;z-index:120;top:calc(100% + 5px);right:0;display:none!important;grid-column:auto!important;min-width:108px;padding:6px!important;border:1px solid #d9e4de;border-radius:9px;background:#fff;box-shadow:0 10px 28px rgba(28,62,49,.18)}
.finance-file-upload-field .expense-selected-file-item.is-menu-open .expense-file-actions{display:flex!important;align-items:stretch!important;flex-direction:column!important;gap:3px!important}
.finance-file-upload-field .expense-selected-file-item .expense-file-actions button{justify-content:flex-start!important;width:100%!important;height:32px!important;margin:0!important;padding:5px 9px!important;border:0!important;color:#405249!important;background:transparent!important;text-align:left!important}
.finance-file-upload-field .expense-selected-file-item .expense-file-actions button:hover{background:#eef5f1!important}
.finance-file-upload-field .expense-selected-file-item .expense-file-actions button.danger{color:#a54038!important}
.finance-file-upload-line>.expense-selected-file-list{flex:1 1 0!important;min-width:0!important}
.finance-file-attachment-list article{position:relative!important;overflow:visible!important}
.finance-file-attachment-list .finance-file-attachment-actions{position:absolute!important;z-index:130;top:calc(100% + 5px);right:0;display:none!important;align-items:stretch!important;flex-direction:column!important;gap:3px!important;min-width:112px;padding:6px!important;border:1px solid #d9e4de;border-radius:9px;background:#fff;box-shadow:0 10px 28px rgba(28,62,49,.18)}
.finance-file-attachment-list article.is-open .finance-file-attachment-actions{display:flex!important}
.finance-file-attachment-list .finance-file-attachment-actions form{display:block!important;width:100%!important}
.finance-file-attachment-list .finance-file-attachment-actions input{display:none!important}
.finance-file-attachment-list .finance-file-attachment-actions a,.finance-file-attachment-list .finance-file-attachment-actions button{display:flex!important;align-items:center!important;justify-content:flex-start!important;width:100%!important;height:32px!important;margin:0!important;padding:5px 9px!important;border:0!important;color:#405249!important;background:transparent!important;text-align:left!important}
.finance-file-attachment-list .finance-file-attachment-actions a:hover,.finance-file-attachment-list .finance-file-attachment-actions button:hover{background:#eef5f1!important}
.finance-file-attachment-list .finance-file-attachment-actions .danger-action{color:#a54038!important}
@media(max-width:900px){.expense-primary-row,.expense-linked-row{grid-template-columns:repeat(2,minmax(0,1fr))}.expense-transaction-row,.expense-transaction-row.has-sales-order{grid-template-columns:repeat(2,minmax(0,1fr))}.expense-description-field{grid-column:1/-1}}
@media(max-width:620px){.expense-primary-row,.expense-linked-row,.expense-transaction-row,.expense-transaction-row.has-sales-order,.expense-refund-row,.expense-recipient-row,.expense-attachment-row{grid-template-columns:1fr}.expense-description-field{grid-column:auto}#expense-create-form .expense-create-submit{width:100%!important}.expense-create-upload-control{flex-basis:100%!important;width:100%!important}.expense-selected-file-item .expense-file-actions,.expense-attachment-item .expense-file-actions{justify-content:flex-start}}

/* Permission group: fixed bottom action row, only the permission content scrolls. */
dialog.oa-modal.permission-group-footer-dialog[open] {
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) auto !important;
  max-height: 90vh !important;
  overflow: hidden !important;
}
dialog.oa-modal.permission-group-footer-dialog > .oa-modal-head {
  grid-row: 1;
}
dialog.oa-modal.permission-group-footer-dialog > .oa-modal-body {
  grid-row: 2;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
}
dialog.oa-modal.permission-group-footer-dialog > .permission-group-modal-footer {
  position: relative;
  z-index: 80;
  grid-row: 3;
  display: flex !important;
  align-items: center;
  justify-content: flex-end !important;
  gap: 10px;
  box-sizing: border-box;
  width: 100%;
  margin: 0 !important;
  padding: 12px 20px !important;
  border-top: 1px solid var(--line);
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 -8px 22px rgba(27, 55, 43, .08);
}
dialog.oa-modal.permission-group-footer-dialog > .permission-group-modal-footer button {
  width: auto !important;
  min-width: 110px;
  margin: 0 !important;
}
dialog.oa-modal.permission-group-footer-dialog > .permission-group-modal-footer .danger {
  min-width: 0 !important;
  margin-right: auto !important;
  padding: 7px 12px !important;
  color: #a43d37 !important;
  background: #f8e9e7 !important;
  font-size: 13px;
}
dialog.oa-modal.permission-group-footer-dialog > .permission-group-modal-footer .danger:hover {
  color: #fff !important;
  background: #b84343 !important;
}
@media (max-width: 760px) {
  dialog.oa-modal.permission-group-footer-dialog[open] {
    max-height: 96vh !important;
  }
  dialog.oa-modal.permission-group-footer-dialog > .permission-group-modal-footer {
    flex-direction: row !important;
    padding: 10px 12px !important;
  }
  dialog.oa-modal.permission-group-footer-dialog > .permission-group-modal-footer button {
    flex: 0 0 auto;
    width: auto !important;
  }
  dialog.oa-modal.permission-group-footer-dialog > .permission-group-modal-footer button:not(.danger) {
    min-width: 110px;
  }
}
.account-form{grid-template-columns:repeat(3,minmax(0,1fr))!important;align-items:start}
.account-form .account-initial-amount-field,.account-form .account-viewers-field{grid-column:auto!important;min-width:0}
.account-form>button[type="submit"],.account-form>button:not([type]){grid-column:1/-1!important;justify-self:end!important;width:auto!important;min-width:96px;margin-top:10px!important}
.account-form .account-viewers-field{position:relative;z-index:30}
.account-form .account-viewers-field:has(.meal-multi-control.is-open){z-index:20000}
.account-summary:has(.account-form .account-viewers-field),.account-summary:has(.record-stable-detail-form .account-viewers-field),.record-stable-detail-form:has(.account-viewers-field),.record-stable-detail-form:has(.account-viewers-field) .account-form{overflow:visible!important}
.account-form .account-viewers-field .customer-company-picker{width:100%;min-width:0}
.account-form .account-viewers-field .customer-company-menu{z-index:16000}
.account-form .account-viewers-field .meal-multi-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.account-form .account-viewers-field .meal-multi-control{position:relative;min-width:0;margin-top:6px}
.account-form .account-viewers-field .meal-multi-trigger{display:flex!important;width:100%!important;height:42px!important;align-items:center;justify-content:space-between;margin:0!important;padding:0 11px!important;border:1px solid #d6e1db!important;border-radius:8px!important;color:#33483e!important;background:#fff!important;font-weight:500!important;text-align:left!important}
.account-form .account-viewers-field .meal-multi-trigger>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
.account-form .account-viewers-field .meal-multi-trigger>i{margin-left:8px;color:#77877f;font-style:normal;transition:transform .16s}
.account-form .account-viewers-field .meal-multi-control.is-open .meal-multi-trigger>i{transform:rotate(180deg)}
.account-form .account-viewers-field .meal-multi-menu{position:absolute;z-index:16000;top:47px;right:0;left:0;width:100%;max-height:290px;overflow:auto;padding:7px;border:1px solid #d5e1da;border-radius:10px;background:#fff;box-shadow:0 14px 36px rgba(30,62,48,.18)}
.account-form .account-viewers-field .meal-multi-menu[hidden]{display:none!important}
.account-form .account-viewers-field .meal-multi-search{width:100%!important;height:36px!important;margin:0 0 6px!important;padding:7px 9px!important}
.account-form .account-viewers-field .meal-multi-option{display:flex!important;width:100%!important;min-height:36px!important;align-items:center;gap:8px;margin:0!important;padding:7px 9px!important;border:0!important;border-radius:7px!important;color:#30453b!important;background:#fff!important;text-align:left!important;font-weight:500!important}
.account-form .account-viewers-field .meal-multi-option:hover{background:#eef7f2!important}
.account-form .account-viewers-field .meal-multi-option.is-selected{color:#17664d!important;background:#e7f4ed!important}
.account-form .account-viewers-field .meal-multi-check{display:grid;flex:0 0 18px;width:18px;height:18px;place-items:center;border:1px solid #b9cac1;border-radius:5px;color:transparent;font-size:12px}
.account-form .account-viewers-field .meal-multi-option.is-selected .meal-multi-check{border-color:#238160;color:#fff;background:#238160}
.oa-modal:has(.account-form),.oa-modal:has(.account-form) .oa-modal-body{overflow:visible}
@media(max-width:700px){.account-form .account-viewers-field .meal-multi-menu{position:fixed;z-index:18000;top:18vh;right:auto;left:5vw;width:90vw;max-height:62vh}.oa-modal:has(.account-form){overflow:hidden}.oa-modal:has(.account-form) .oa-modal-body{overflow:auto}}
@media(max-width:840px) and (min-width:621px){.account-form{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:620px){.account-form{grid-template-columns:1fr!important}.account-form .account-initial-amount-field,.account-form .account-viewers-field{grid-column:1!important}.account-form>button[type="submit"],.account-form>button:not([type]){grid-column:1!important}}

/* v0.15.957: widen price, quantity and unit fields; the remark column takes the remaining space. */
html body .sales-items-layout .sales-product-col{width:24%!important}
html body .sales-items-layout .sales-price-col{width:132px!important}
html body .sales-items-layout .sales-quantity-col{width:84px!important}
html body .sales-items-layout .sales-unit-col{width:108px!important}
html body .sales-items-layout .sales-total-col{width:90px!important}
html body .sales-items-layout .sales-remark-col{width:auto!important}
html body .sales-items-layout .sales-remove-col{width:40px!important}
html body .sales-items-layout .remove-sales-item{display:flex!important;width:30px!important;height:30px!important;min-width:30px!important;margin:auto!important;padding:0!important;align-items:center;justify-content:center;border-radius:50%!important;font-size:20px!important;line-height:1!important}
@media(max-width:620px){html body .sales-items-layout .sales-product-col{width:21%!important}html body .sales-items-layout .sales-price-col{width:64px!important}html body .sales-items-layout .sales-quantity-col{width:48px!important}html body .sales-items-layout .sales-unit-col{width:40px!important}html body .sales-items-layout .sales-total-col{width:70px!important}html body .sales-items-layout .sales-remove-col{width:34px!important}html body .sales-items-layout .remove-sales-item{width:28px!important;height:28px!important;min-width:28px!important}}
html body .sales-order-items-table th:nth-child(1),html body .sales-order-items-table td:nth-child(1){width:24%!important}
html body .sales-order-items-table th:nth-child(2),html body .sales-order-items-table td:nth-child(2){width:88px!important}
html body .sales-order-items-table th:nth-child(3),html body .sales-order-items-table td:nth-child(3){width:56px!important}
html body .sales-order-items-table th:nth-child(4),html body .sales-order-items-table td:nth-child(4){width:72px!important}
html body .sales-order-items-table th:nth-child(5),html body .sales-order-items-table td:nth-child(5){width:90px!important}
html body .sales-order-items-table th:nth-child(6),html body .sales-order-items-table td:nth-child(6){width:auto!important}
@media(max-width:620px){html body .sales-order-items-table th:nth-child(1),html body .sales-order-items-table td:nth-child(1){width:22%!important}html body .sales-order-items-table th:nth-child(2),html body .sales-order-items-table td:nth-child(2){width:64px!important}html body .sales-order-items-table th:nth-child(3),html body .sales-order-items-table td:nth-child(3){width:48px!important}html body .sales-order-items-table th:nth-child(4),html body .sales-order-items-table td:nth-child(4){width:40px!important}html body .sales-order-items-table th:nth-child(5),html body .sales-order-items-table td:nth-child(5){width:70px!important}}

/* v0.15.753: procurement detail rows share one heading instead of repeating labels. */
.procurement-order-form .procurement-line-head{
  display:grid;
  grid-template-columns:minmax(170px,1.35fr) minmax(90px,.62fr) minmax(80px,.55fr) minmax(105px,.7fr) 36px;
  gap:8px;
  padding:0 10px;
  color:#607269;
  font-size:12px;
  line-height:20px;
}
.procurement-order-form .procurement-line-head i{color:#b93636;font-style:normal}
.procurement-order-form .procurement-line>label{font-size:0!important}
.procurement-order-form .procurement-line>label>.required{display:none!important}
.procurement-order-form .procurement-line>label>select,
.procurement-order-form .procurement-line>label>input{font-size:14px!important}
@media(max-width:700px){
  .procurement-order-form .procurement-line-head{display:none}
}

/* v0.15.759: keep the searchable procurement-item control aligned with its detail row. */
.procurement-order-form .procurement-line>label{
  min-width:0;
}
.procurement-order-form .procurement-line .relation-search-combobox{
  position:relative;
  z-index:30;
  width:100%!important;
  min-width:0!important;
  margin:7px 0 0!important;
  font-size:14px!important;
  line-height:1.5!important;
}
.procurement-order-form .procurement-line .relation-search-combobox:focus-within{
  z-index:2900;
}
.procurement-order-form .procurement-line .relation-search-input{
  display:block;
  box-sizing:border-box;
  width:100%!important;
  min-width:0!important;
  height:48px!important;
  min-height:48px!important;
  margin:0!important;
  padding:12px 36px 12px 14px!important;
  font:14px/1.5 "Microsoft YaHei","PingFang SC",Arial,sans-serif!important;
}
.procurement-order-form .procurement-line .relation-search-menu{
  z-index:2800;
  min-width:min(340px,calc(94vw - 64px));
  font-size:13px!important;
  line-height:1.5!important;
}
.procurement-order-form .procurement-line .project-search-option,
.procurement-order-form .procurement-line .project-search-empty{
  font-size:13px!important;
  line-height:1.5!important;
}
.procurement-order-form .procurement-lines,
.procurement-order-form .procurement-line{
  overflow:visible!important;
}
.oa-modal:has(.procurement-order-form) .oa-modal-body{
  overflow-x:hidden;
}
@media(max-width:700px){
  .procurement-order-form .procurement-line .relation-search-menu{
    min-width:100%;
    max-width:calc(98vw - 48px);
  }
}

/* v0.15.755: after-sale business fields and compact list sizing. */
.after-sale-create-form>.after-sale-issue-field{grid-column:1/-1}
.after-sale-inline-editing .profile-grid select[form="after-sale-inline-edit-form"]{margin:0}
.profile-grid.after-sale-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.profile-grid.after-sale-detail-grid>.after-sale-detail-issue{grid-column:1/-1!important}
.after-sale-detail-tabs{display:flex;align-items:center;gap:8px;margin:14px 0 0;padding:7px;border:1px solid var(--line);border-radius:12px;background:#edf4f0}
.after-sale-detail-tab{width:auto!important;min-width:150px!important;margin:0!important;padding:10px 18px!important;border:0!important;border-radius:9px!important;color:#31594b!important;background:transparent!important;box-shadow:none!important}
.after-sale-detail-tab.is-active{color:#fff!important;background:var(--primary)!important}
.after-sale-detail-tab-panels{margin-top:10px}
.after-sale-detail-tab-panel{margin:0!important}
.after-sale-detail-tab-panel[hidden]{display:none!important}
@media(max-width:700px){.profile-grid.after-sale-detail-grid{grid-template-columns:1fr!important}.profile-grid.after-sale-detail-grid>.after-sale-detail-issue{grid-column:1!important}}
.after-sale-company-list-panel>.list-primary-actions .after-sale-store-filter{flex:0 0 210px;width:210px;min-width:170px;height:42px;margin:0}
@media(max-width:760px){.after-sale-company-list-panel>.list-primary-actions .after-sale-store-filter{flex:1 1 170px;width:auto;min-width:0}}
@media(max-width:700px){.after-sale-create-form>.after-sale-issue-field{grid-column:1}}
.detail-action-menu .review-resubmit-form{margin:0!important}
.detail-action-menu .review-resubmit-action{display:block!important;width:100%!important;min-width:150px!important;margin:0!important;padding:9px 12px!important;border:0!important;border-radius:0!important;background:#edf7f2!important;color:#17634f!important;text-align:left!important;white-space:nowrap!important;box-shadow:none!important}
.detail-action-menu .review-resubmit-action:hover{background:#dff0e7!important}

/* v0.15.762: reserve the income date column for the floating review-lock icon. */
@media (min-width:901px) {
    html body .workspace table.income-record-fit-table > tbody > tr > td:first-child,
    html body .workspace table.income-record-fit-table > tfoot > tr > td:first-child {
        padding-left: 42px !important;
    }
}
/* Customer create feedback is a toast so saving does not move the form. */
.crm-customer-form > .oa-save-feedback{
    position:fixed;
    right:24px;
    bottom:24px;
    z-index:10020;
    width:min(420px,calc(100vw - 32px));
    margin:0;
    box-sizing:border-box;
    box-shadow:0 10px 30px rgba(23,55,43,.18);
}

@media(max-width:600px){
    .crm-customer-form > .oa-save-feedback{right:16px;bottom:16px}
}
.customer-quotation-form .quotation-customer-field{
    position:relative;
    z-index:40;
    min-width:0;
}

.customer-quotation-form .quotation-customer-field .customer-company-picker,
.customer-quotation-form .quotation-customer-field .customer-company-display{
    width:100%;
    min-width:0;
}

.customer-quotation-form .quotation-customer-field .customer-company-menu{
    z-index:16000;
}

/* Final quotation list sizing: keep the action cell as a real table cell. */
@media (min-width: 901px) {
    .customer-quotation-list-panel .customer-quotation-list-table {
        width: 100% !important;
        table-layout: fixed !important;
    }
    .customer-quotation-list-panel .customer-quotation-list-table :is(th,td):nth-child(1) { width: 12% !important; }
    .customer-quotation-list-panel .customer-quotation-list-table :is(th,td):nth-child(2) { width: 12% !important; }
    .customer-quotation-list-panel .customer-quotation-list-table :is(th,td):nth-child(3) { width: 10% !important; }
    .customer-quotation-list-panel .customer-quotation-list-table :is(th,td):nth-child(4) { width: 10% !important; }
    .customer-quotation-list-panel .customer-quotation-list-table :is(th,td):nth-child(5) { width: 8% !important; }
    .customer-quotation-list-panel .customer-quotation-list-table :is(th,td):nth-child(6) { width: 31% !important; }
    .customer-quotation-list-panel .customer-quotation-list-table :is(th,td):nth-child(7) { width: 8% !important; }
    .customer-quotation-list-panel .customer-quotation-list-table :is(th,td):nth-child(8) { width: 9% !important; }
    .customer-quotation-list-panel .customer-quotation-list-table td:nth-child(7) {
        overflow: hidden !important;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .customer-quotation-list-panel .customer-quotation-list-table td.quotation-list-actions {
        display: table-cell !important;
        overflow: visible !important;
        padding-right: 8px !important;
        text-align: center !important;
        white-space: nowrap;
    }
    .customer-quotation-list-panel .quotation-list-actions .quotation-preview-button {
        position: static !important;
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        max-width: 100%;
        vertical-align: middle;
    }
}

.customer-price-compare-result table {
    min-width: max(100%, 900px) !important;
}

/* Quotation edit table: distribute the available width without allowing inputs to stretch columns. */
.quotation-edit-form .table-wrap {
    width: 100%;
    max-width: 100%;
}

.quotation-edit-form table {
    width: 100% !important;
    table-layout: fixed !important;
}

.quotation-edit-form table :is(th,td) {
    min-width: 0 !important;
    overflow: hidden;
}

.quotation-edit-form table input[name="quoted_price[]"],
.quotation-edit-form table input[name="line_remark[]"] {
    display: block;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box;
}

@media (min-width: 651px) {
    .quotation-edit-form table :is(th,td):nth-child(1) { width: 28% !important; }
    .quotation-edit-form table :is(th,td):nth-child(2) { width: 12% !important; }
    .quotation-edit-form table :is(th,td):nth-child(3) { width: 15% !important; }
    .quotation-edit-form table :is(th,td):nth-child(4) { width: 17% !important; }
    .quotation-edit-form table :is(th,td):nth-child(5) { width: 28% !important; }
}

/* Keep the customer selector above the comparison table on its first opening. */
.customer-price-compare-page,
.customer-price-compare-filter,
.customer-price-compare-form,
.customer-price-compare-customer {
    overflow: visible !important;
}

.customer-price-compare-filter:has(.customer-company-picker.is-open) {
    z-index: 30000 !important;
    padding-bottom: 324px !important;
}

.customer-price-compare-customer .customer-company-picker.is-open,
.customer-price-compare-customer .customer-company-menu {
    z-index: 30001 !important;
}

.customer-price-compare-customer .customer-company-menu {
    right: 0 !important;
    left: 0 !important;
    width: 100% !important;
    max-height: 300px !important;
}

.customer-price-compare-customer .customer-company-choices {
    max-height: 235px !important;
}

@media (max-width: 650px) {
    .customer-price-compare-filter:has(.customer-company-picker.is-open) {
        padding-bottom: 304px !important;
    }
}

/* Piecework standard single/batch creation. */
.oa-modal:has(#piecework-standard-form) {
    width: min(720px, 94vw) !important;
    transition: width .18s ease;
}

.oa-modal:has(#piecework-standard-form.is-batch-mode) {
    width: min(1180px, 96vw) !important;
}

.oa-modal:has(#piecework-standard-form) .oa-modal-head {
    justify-content: flex-start;
    gap: 8px;
}

.oa-modal:has(#piecework-standard-form) .oa-modal-head h2 {
    margin-right: auto;
}

.oa-modal:has(#piecework-standard-form) :is(.piecework-standard-mode-toggle,.oa-modal-close) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: center;
    box-sizing: border-box;
    height: 38px !important;
    min-height: 38px !important;
    margin: 0 !important;
    line-height: 1 !important;
}

.piecework-standard-mode-toggle {
    width: auto !important;
    min-width: 92px;
    padding: 8px 14px !important;
    color: #17634f !important;
    border: 1px solid #c5d8ce !important;
    background: #edf5f1 !important;
}

#piecework-standard-form {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 14px !important;
    width: 100%;
    min-width: 0;
}

#piecework-standard-form > * {
    grid-column: 1 / -1 !important;
}

#piecework-standard-form .piecework-standard-single-fields {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 12px 14px;
}

#piecework-standard-form :is(.piecework-standard-single-fields,.piecework-standard-batch-fields)[hidden] {
    display: none !important;
}

#piecework-standard-form label {
    min-width: 0;
    margin: 0;
}

#piecework-standard-form .piecework-standard-single-fields .span-2 {
    grid-column: 1 / -1;
}

#piecework-standard-form textarea {
    min-height: 44px;
    resize: vertical;
}

.piecework-standard-batch-fields {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 12px;
    align-items: end;
    min-width: 0;
}

.piecework-standard-batch-product {
    grid-column: 1 / -1;
    width: min(420px,100%);
}

.piecework-standard-batch-table {
    grid-column: 1 / -1;
    position: relative;
    max-height: min(470px,55vh);
    overflow-x: hidden !important;
    overflow-y: auto !important;
    margin-top: 0 !important;
    padding-bottom: 6px;
    border: 1px solid #dce7e1;
    border-radius: 10px;
    scrollbar-gutter: stable;
}

.piecework-standard-batch-table:has(.piecework-employee-picker.is-open) {
    padding-bottom: min(260px,32vh);
}

.piecework-standard-batch-table thead th {
    position: sticky;
    z-index: 30;
    top: 0;
    background: #f3f7f5;
    box-shadow: 0 1px 0 #dce7e1;
}

.piecework-standard-batch-table table {
    width: 100% !important;
    min-width: 0 !important;
    table-layout: fixed !important;
}

.piecework-standard-batch-table :is(th,td):nth-child(1) { width: 22% !important; }
.piecework-standard-batch-table :is(th,td):nth-child(2) { width: 13% !important; }
.piecework-standard-batch-table :is(th,td):nth-child(3) { width: 31% !important; }
.piecework-standard-batch-table :is(th,td):nth-child(4) { width: 27% !important; }
.piecework-standard-batch-table :is(th,td):nth-child(5) { width: 7% !important; }

.piecework-standard-batch-table td {
    position: relative;
    min-width: 0 !important;
    overflow: visible !important;
    padding: 9px !important;
}

.piecework-standard-batch-table :is(input,select,.piecework-employee-display) {
    box-sizing: border-box;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
}

.piecework-standard-batch-table td:has(.piecework-employee-picker.is-open) {
    z-index: 20000;
}

.piecework-standard-batch-table tr:has(.piecework-employee-picker.is-open) {
    position: relative;
    z-index: 20000;
}

.piecework-standard-batch-table .piecework-employee-picker {
    margin: 0;
}

.piecework-standard-batch-table .piecework-employee-picker.is-open {
    z-index: 20001;
}

.piecework-standard-batch-table .piecework-employee-menu {
    right: 0;
    left: auto;
    width: min(420px, 70vw);
    min-width: 100%;
    max-height: min(340px,44vh);
    overflow: hidden;
    z-index: 20002;
}

.piecework-standard-batch-table .piecework-employee-choices {
    max-height: min(220px,28vh);
    overflow-y: auto;
}

.piecework-standard-remove-row {
    width: 34px !important;
    height: 34px;
    min-width: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #a53e38 !important;
    border: 1px solid #ead0cd !important;
    background: #fff2f1 !important;
}

.piecework-standard-add-row {
    grid-column: 1;
    justify-self: start;
    width: auto !important;
    min-width: 110px;
    margin: 0 !important;
}

.piecework-standard-save {
    justify-self: end;
    width: auto !important;
    min-width: 112px;
    margin: 0 !important;
}

.piecework-standard-feedback {
    margin: 0 !important;
}

@media (max-width: 700px) {
    .oa-modal:has(#piecework-standard-form),
    .oa-modal:has(#piecework-standard-form.is-batch-mode) { width: 98vw !important; }
    #piecework-standard-form .piecework-standard-single-fields { grid-template-columns: 1fr; }
    #piecework-standard-form .piecework-standard-single-fields .span-2 { grid-column: 1; }
    .piecework-standard-batch-table { overflow-x: auto !important; }
    .piecework-standard-batch-table table { min-width: 820px !important; }
}

/* v0.15.858: keep order controls below the sticky footer while dropdown menus portal above it. */
html body .sales-order-sticky-actions { z-index: 50 !important; }
html body #sales-items .relation-search-combobox { z-index: 1 !important; }
html body .dropdown-portal-menu { z-index: 2147483000 !important; }

/* v0.15.897: keep sales-item rows fully clipped below one opaque table header. */
html body #supply-sales-form .sales-items-scroll {
    position: relative !important;
    isolation: isolate;
    max-height: min(48vh, 520px);
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    background: #fff !important;
    contain: paint;
}

html body #supply-sales-form .sales-items-scroll > #sales-items > thead {
    position: sticky !important;
    z-index: 30 !important;
    top: 0 !important;
    background: #f3f7f5 !important;
    box-shadow: 0 1px 0 #d7e1db, 0 7px 12px rgba(28, 64, 48, .07);
}

html body #supply-sales-form .sales-items-scroll > #sales-items > thead > tr,
html body #supply-sales-form .sales-items-scroll > #sales-items > thead > tr > th {
    background: #f3f7f5 !important;
}

html body #supply-sales-form .sales-items-scroll > #sales-items > thead > tr > th {
    position: static !important;
    z-index: auto !important;
    background-image: none !important;
    background-clip: border-box !important;
}

@media(max-width:620px){
    html body #supply-sales-form .sales-items-scroll{max-height:55vh;overflow-x:auto!important}
}

/* v0.15.862: keep the petty-cash workflow status readable beside the lock badge. */
.workspace .petty-cash-list-table > thead > tr > th:first-child,
.workspace .petty-cash-list-table > tbody > tr > td:first-child {
    width: 118px !important;
    min-width: 118px !important;
    max-width: 118px !important;
    white-space: nowrap !important;
}

.workspace .petty-cash-list-table > tbody > tr > td:first-child > .tag {
    display: inline-flex !important;
    width: auto !important;
    max-width: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
}

@media (max-width: 900px) {
    .workspace .petty-cash-list-table > thead > tr > th:first-child,
    .workspace .petty-cash-list-table > tbody > tr > td:first-child {
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
    }
}

/* v0.15.859: recipient columns belong to the desktop sales-order table only. */
@media (max-width: 760px) {
    .workspace table.sales-order-list-table th:nth-child(6),
    .workspace table.sales-order-list-table td:nth-child(6),
    .workspace table.sales-order-list-table th:nth-child(7),
    .workspace table.sales-order-list-table td:nth-child(7) {
        display: none !important;
    }
}
/* v0.15.890: 代销结算明细在桌面端固定适配弹窗宽度，压缩备注列并取消横向滚动。 */
@media (min-width:701px){
  .consignment-create-dialog .consignment-item-wrap{overflow-x:hidden!important}
  .consignment-create-dialog .consignment-item-wrap table{width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important}
  .consignment-create-dialog .consignment-item-wrap .consignment-product-col{width:24%!important}
  .consignment-create-dialog .consignment-item-wrap .consignment-book-col{width:13%!important}
  .consignment-create-dialog .consignment-item-wrap .settlement-counted-column{width:13%!important}
  .consignment-create-dialog .consignment-item-wrap .consignment-quantity-col{width:13%!important}
  .consignment-create-dialog .consignment-item-wrap .settlement-price-column{width:11%!important}
  .consignment-create-dialog .consignment-item-wrap .settlement-total-column{width:12%!important}
  .consignment-create-dialog .consignment-item-wrap .consignment-remark-col{width:14%!important}
  .consignment-create-dialog .consignment-item-wrap th,
  .consignment-create-dialog .consignment-item-wrap td{min-width:0!important;padding-right:5px!important;padding-left:5px!important;overflow:hidden!important}
  .consignment-create-dialog .consignment-item-wrap input{width:100%!important;min-width:0!important;max-width:100%!important;padding-right:7px!important;padding-left:7px!important}
}
/* v0.15.891: 重新整理代销管理导航、操作区和列表，并彻底约束结算备注输入框。 */
.consignment-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid #e5ece8}
.consignment-tabs{display:flex;align-items:center;gap:5px;margin:0!important;padding:4px;border-radius:11px;background:#f0f5f2}
.consignment-tab{display:flex;align-items:center;gap:7px;min-height:36px;padding:7px 14px;border-radius:8px;color:#607269;text-decoration:none!important;font-size:13px;font-weight:700;line-height:1;transition:background .15s,color .15s,box-shadow .15s}
.consignment-tab:hover{color:#176a54;background:#fff}
.consignment-tab.is-active{color:#fff;background:#176d57;box-shadow:0 3px 9px rgba(23,109,87,.18)}
.consignment-tab em{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:10px;color:#687a71;background:#fff;font-size:11px;font-style:normal;font-weight:800}
.consignment-tab.is-active em{color:#176d57}
.consignment-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.consignment-actions .consignment-create-button{width:auto!important;min-width:92px!important;height:38px;margin:0!important;padding:0 14px!important;border:0!important;border-radius:9px!important;text-decoration:none!important;box-shadow:none!important}
.consignment-actions .consignment-return-button{color:#285b4b!important;background:#eaf3ee!important}
.consignment-actions .consignment-settlement-button{color:#fff!important;background:#176d57!important}
.consignment-flow{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:9px 12px;border-radius:9px;color:#68786f;background:#f7faf8;font-size:12px;line-height:1.55}
.consignment-flow span{min-width:0}.consignment-flow b{margin-right:5px;color:#284b3d}.consignment-flow i{align-self:stretch;width:1px;flex:0 0 1px;background:#dce6e0}
.consignment-panel>.table-wrap{width:100%;overflow-x:hidden}
.consignment-panel>.table-wrap table{width:100%!important;min-width:0!important;table-layout:fixed!important}
.consignment-panel>.table-wrap th,.consignment-panel>.table-wrap td{box-sizing:border-box;min-width:0!important;padding-right:8px!important;padding-left:8px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.consignment-tab-ledger>.table-wrap th:nth-child(1){width:14%}.consignment-tab-ledger>.table-wrap th:nth-child(2){width:12%}.consignment-tab-ledger>.table-wrap th:nth-child(3){width:18%}.consignment-tab-ledger>.table-wrap th:nth-child(4),.consignment-tab-ledger>.table-wrap th:nth-child(5),.consignment-tab-ledger>.table-wrap th:nth-child(6),.consignment-tab-ledger>.table-wrap th:nth-child(7),.consignment-tab-ledger>.table-wrap th:nth-child(8){width:9%}.consignment-tab-ledger>.table-wrap th:nth-child(9){width:11%}
.consignment-tab-settlements>.table-wrap th:nth-child(1){width:11%}.consignment-tab-settlements>.table-wrap th:nth-child(2){width:14%}.consignment-tab-settlements>.table-wrap th:nth-child(3){width:13%}.consignment-tab-settlements>.table-wrap th:nth-child(4){width:12%}.consignment-tab-settlements>.table-wrap th:nth-child(5){width:10%}.consignment-tab-settlements>.table-wrap th:nth-child(6){width:11%}.consignment-tab-settlements>.table-wrap th:nth-child(7){width:11%}.consignment-tab-settlements>.table-wrap th:nth-child(8){width:10%}.consignment-tab-settlements>.table-wrap th:nth-child(9){width:8%}
.consignment-tab-returns>.table-wrap th:nth-child(1){width:12%}.consignment-tab-returns>.table-wrap th:nth-child(2){width:16%}.consignment-tab-returns>.table-wrap th:nth-child(3){width:15%}.consignment-tab-returns>.table-wrap th:nth-child(4){width:14%}.consignment-tab-returns>.table-wrap th:nth-child(5){width:11%}.consignment-tab-returns>.table-wrap th:nth-child(6){width:14%}.consignment-tab-returns>.table-wrap th:nth-child(7){width:10%}.consignment-tab-returns>.table-wrap th:nth-child(8){width:8%}
@media (min-width:701px){
  .consignment-create-dialog .consignment-item-wrap tbody td:last-child{box-sizing:border-box!important;padding:4px!important;overflow:hidden!important}
  .consignment-create-dialog .consignment-item-wrap tbody td:last-child input[name="item_remark[]"]{display:block!important;box-sizing:border-box!important;width:calc(100% - 6px)!important;min-width:0!important;max-width:calc(100% - 6px)!important;height:38px!important;margin:0 auto!important;padding:7px!important}
}
@media(max-width:760px){.consignment-toolbar{align-items:stretch;flex-direction:column}.consignment-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.consignment-tab{justify-content:center;padding-right:7px;padding-left:7px}.consignment-actions{justify-content:flex-end}.consignment-flow{align-items:flex-start;flex-direction:column;gap:6px}.consignment-flow i{width:100%;height:1px;align-self:auto}.consignment-panel>.table-wrap{overflow-x:auto}.consignment-panel>.table-wrap table{min-width:720px!important}}

/* v0.15.986: keep long sales-order entry lists scrollable and give numeric fields readable widths. */
html body #supply-sales-form .sales-items-scroll{
  display:block!important;
  height:clamp(230px,42vh,430px)!important;
  min-height:230px!important;
  max-height:430px!important;
  overflow-x:hidden!important;
  overflow-y:scroll!important;
  scrollbar-gutter:stable;
  scroll-padding:58px 0 12px;
  overscroll-behavior-y:contain;
}
html body #supply-sales-form .sales-items-layout{
  width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
}
html body #supply-sales-form .sales-items-layout .sales-product-col{width:25%!important}
html body #supply-sales-form .sales-items-layout .sales-price-col{width:12%!important}
html body #supply-sales-form .sales-items-layout .sales-quantity-col{width:9%!important}
html body #supply-sales-form .sales-items-layout .sales-unit-col{width:9%!important}
html body #supply-sales-form .sales-items-layout .sales-total-col{width:11%!important}
html body #supply-sales-form .sales-items-layout .sales-remark-col{width:30%!important}
html body #supply-sales-form .sales-items-layout .sales-remove-col{width:4%!important}
html body #supply-sales-form .sales-items-layout th,
html body #supply-sales-form .sales-items-layout td{padding-right:6px!important;padding-left:6px!important}
html body #supply-sales-form .sales-items-layout input,
html body #supply-sales-form .sales-items-layout select{min-width:0!important;width:100%!important}
html body #supply-sales-form .sales-items-layout .sales-item-remark-input{min-width:0!important;width:100%!important}
@media(max-width:760px){
  html body #supply-sales-form .sales-items-scroll{height:min(52vh,390px)!important;min-height:220px!important;max-height:390px!important;overflow-x:auto!important}
  html body #supply-sales-form .sales-items-layout{min-width:760px!important}
}

@media(max-width:620px){
  html body #supply-sales-form .sales-items-layout .sales-product-col{width:24%!important}
  html body #supply-sales-form .sales-items-layout .sales-price-col{width:12%!important}
  html body #supply-sales-form .sales-items-layout .sales-quantity-col{width:10%!important}
  html body #supply-sales-form .sales-items-layout .sales-unit-col{width:10%!important}
  html body #supply-sales-form .sales-items-layout .sales-total-col{width:11%!important}
  html body #supply-sales-form .sales-items-layout .sales-remark-col{width:28%!important}
  html body #supply-sales-form .sales-items-layout .sales-remove-col{width:5%!important}
}
/* v0.15.892: 简化代销管理操作语义，流程改为三个明确步骤。 */
.consignment-flow{display:flex!important;align-items:center!important;gap:9px!important;padding:9px 12px!important}
.consignment-flow>span{display:flex;align-items:center;gap:7px;color:#50645a;white-space:nowrap}
.consignment-flow>span>b{display:grid;place-items:center;width:21px;height:21px;flex:0 0 21px;margin:0!important;border-radius:50%;color:#fff;background:#4e806d;font-size:11px}
.consignment-flow>i{display:block!important;width:auto!important;height:auto!important;align-self:auto!important;flex:0 0 auto!important;color:#9aaba3;background:none!important;font-size:14px;font-style:normal}
.consignment-flow>small{margin-left:auto;color:#7b8982;white-space:nowrap}
@media(max-width:1000px){.consignment-flow{align-items:flex-start!important;flex-wrap:wrap}.consignment-flow>small{width:100%;margin-left:0}.consignment-flow>span{white-space:normal}}
@media(max-width:760px){.consignment-flow{display:grid!important;grid-template-columns:1fr!important}.consignment-flow>i{display:none!important}.consignment-flow>small{width:auto}.consignment-actions{width:100%}.consignment-actions .consignment-create-button{flex:1}}
/* v0.15.894: 代销分类和操作按钮固定横向排列并统一文字对齐。 */
.consignment-toolbar{display:flex!important;align-items:center!important;justify-content:space-between!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:14px!important}
.consignment-toolbar .consignment-tabs{display:flex!important;align-items:center!important;flex:0 1 auto!important;flex-direction:row!important;flex-wrap:nowrap!important;width:auto!important;min-width:0!important;margin:0!important}
.consignment-toolbar .consignment-tab{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 auto!important;height:38px!important;min-height:38px!important;box-sizing:border-box!important;padding:0 15px!important;line-height:38px!important;text-align:center!important;white-space:nowrap!important}
.consignment-toolbar .consignment-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;flex:0 0 auto!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:8px!important;width:auto!important}
.consignment-toolbar .consignment-actions .consignment-create-button{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:96px!important;min-width:96px!important;height:38px!important;min-height:38px!important;box-sizing:border-box!important;margin:0!important;padding:0 12px!important;border:0!important;line-height:1!important;text-align:center!important;white-space:nowrap!important;vertical-align:middle!important}
@media(max-width:700px){.consignment-toolbar{align-items:stretch!important;flex-direction:column!important}.consignment-toolbar .consignment-tabs{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;width:100%!important}.consignment-toolbar .consignment-tab{width:100%!important;padding:0 7px!important}.consignment-toolbar .consignment-actions{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important}.consignment-toolbar .consignment-actions .consignment-create-button{width:100%!important}}

/* v0.15.898: 代销结算产品较多时，明细在弹窗内独立滚动。 */
html body .consignment-create-dialog .consignment-item-wrap{
  position:relative!important;
  min-height:0!important;
  max-height:min(48vh,520px)!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
html body .consignment-create-dialog .consignment-item-wrap thead{
  position:sticky!important;
  top:0!important;
  z-index:12!important;
}
html body .consignment-create-dialog .consignment-item-wrap thead th{
  background:#f3f7f5!important;
  background-image:none!important;
}
html body .consignment-create-dialog .consignment-create-form>footer{
  position:relative;
  z-index:13;
  flex:0 0 auto;
  background:#fff;
}
@media(max-width:700px){
  html body .consignment-create-dialog .consignment-item-wrap{
    max-height:55vh!important;
    overflow-x:auto!important;
    overflow-y:auto!important;
  }
}

/* v0.15.899: 销售订单组合筛选与筛选结果销售额。 */
html body .workspace main .sales-order-list-panel>.sales-order-list-toolbar{
  display:flex!important;
  align-items:center!important;
  flex-wrap:nowrap!important;
  gap:8px!important;
}
.sales-order-company-tabs{
  display:flex;
  align-items:center;
  flex:0 0 auto;
  gap:5px;
  padding:3px;
  border:1px solid #dbe7e1;
  border-radius:10px;
  background:#f4f8f6;
}
.sales-order-company-tab{
  width:auto!important;
  min-width:64px!important;
  height:36px!important;
  min-height:36px!important;
  margin:0!important;
  padding:6px 12px!important;
  border:0!important;
  border-radius:8px!important;
  color:#52655c!important;
  background:transparent!important;
  box-shadow:none!important;
  white-space:nowrap;
}
.sales-order-company-tab.is-active{
  color:#fff!important;
  background:#17664f!important;
}
.after-sale-company-list-panel>.list-primary-actions{display:flex!important;align-items:center!important;gap:8px!important}
.after-sale-company-tabs{flex:0 1 auto;max-width:calc(100% - 260px);overflow-x:auto;scrollbar-width:thin}
.after-sale-company-list-panel>.list-primary-actions>.media-device-list-search{margin-left:auto!important}
@media(max-width:700px){
  .after-sale-company-list-panel>.list-primary-actions{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important}
  .after-sale-company-tabs{grid-column:1/-1;grid-row:1;width:100%;max-width:none}
  .after-sale-company-list-panel>.list-primary-actions>.media-device-list-search{grid-column:1;grid-row:2;width:100%!important;margin:0!important}
  .after-sale-company-list-panel>.list-primary-actions>.oa-open-modal,.after-sale-company-list-panel>.list-primary-actions>.permission-denied-create{grid-column:2;grid-row:2;margin:0!important}
}
.sales-order-filter-total{
  display:flex;
  align-items:baseline;
  flex:0 0 auto;
  gap:7px;
  margin-right:auto;
  padding:8px 11px;
  border:1px solid #dbe7e1;
  border-radius:9px;
  color:#5e6e66;
  background:#f5f9f7;
  white-space:nowrap;
}
.sales-order-filter-total span{font-size:12px}
.sales-order-filter-total b{color:#17664f;font-size:16px}
.sales-order-list-filters{display:flex;align-items:center;flex:0 1 auto;gap:6px;min-width:0}
.sales-order-list-filters.expense-date-range-form{width:auto;flex:0 0 auto}
.sales-order-list-filters.expense-date-range-form .expense-date-range-trigger{flex:0 0 260px}
.sales-order-list-filters input,
.sales-order-list-filters select{
  box-sizing:border-box!important;
  width:auto!important;
  height:42px!important;
  min-height:42px!important;
  margin:0!important;
  padding:8px 9px!important;
}

/* 售后管理：店铺筛选紧贴搜索框左侧，并保持下拉文字完整居中 */
.after-sale-company-list-panel>.list-primary-actions>.after-sale-store-filter{
  box-sizing:border-box!important;
  flex:0 0 210px!important;
  width:210px!important;
  min-width:170px!important;
  height:42px!important;
  min-height:42px!important;
  margin:0!important;
  margin-left:auto!important;
  padding:0 34px 0 12px!important;
  line-height:normal!important;
  font-size:14px!important;
  vertical-align:middle!important;
}
.after-sale-company-list-panel>.list-primary-actions>.media-device-list-search{
  margin-left:0!important;
}
@media(max-width:700px){
  .after-sale-company-list-panel>.list-primary-actions{
    grid-template-columns:minmax(150px,auto) minmax(0,1fr) auto!important;
  }
  .after-sale-company-list-panel>.list-primary-actions>.after-sale-store-filter{
    grid-column:1;
    grid-row:2;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
  }
  .after-sale-company-list-panel>.list-primary-actions>.media-device-list-search{
    grid-column:2;
    grid-row:2;
    min-width:0!important;
    margin:0!important;
  }
  .after-sale-company-list-panel>.list-primary-actions>.oa-open-modal,
  .after-sale-company-list-panel>.list-primary-actions>.permission-denied-create{
    grid-column:3;
    grid-row:2;
  }
}
.sales-order-list-filters select{width:122px!important;flex:0 0 122px!important;min-width:122px!important}
html body .workspace main .sales-order-list-toolbar>.media-device-list-search{
  flex:0 1 260px!important;
  width:260px!important;
  min-width:150px!important;
}
@media(max-width:1100px){
  html body .workspace main .sales-order-list-panel>.sales-order-list-toolbar{flex-wrap:wrap!important}
  .sales-order-filter-total{margin-right:0}
  .sales-order-company-tabs{order:1}
  .sales-order-list-filters{order:3;flex:1 0 100%;justify-content:flex-end}
  html body .workspace main .sales-order-list-toolbar>.media-device-list-search{margin-left:auto!important}
  .sales-order-list-filters.expense-date-range-form{width:100%;flex:1 0 100%;justify-content:flex-end}
}
@media(max-width:1350px) and (min-width:1101px){
  html body .workspace main .sales-order-list-panel>.sales-order-list-toolbar{flex-wrap:wrap!important}
  .sales-order-list-filters{order:3;flex:0 0 auto!important}
}
@media(max-width:700px){
  html body .workspace main .sales-order-list-panel>.sales-order-list-toolbar{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto auto!important;
    gap:8px!important;
  }
  .sales-order-company-tabs{grid-column:1/-1;grid-row:1;overflow-x:auto;width:100%}
  .sales-order-company-tab{min-width:max-content!important;height:34px!important;min-height:34px!important}
  .sales-order-filter-total{grid-column:1;grid-row:2;padding:7px 8px}
  .sales-order-filter-total span{display:none}
  .sales-order-filter-total b{font-size:13px}
  html body .workspace main .sales-order-list-toolbar>.media-device-list-search{
    grid-column:2!important;
    grid-row:2!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
  }
  html body .workspace main .sales-order-list-toolbar>.oa-open-modal,
  html body .workspace main .sales-order-list-toolbar>.permission-denied-create{
    grid-column:3!important;
    grid-row:2!important;
    margin:0!important;
  }
  .sales-order-list-filters{
    display:grid!important;
    grid-column:1/-1!important;
    grid-row:3!important;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)!important;
    width:100%!important;
  }
  .sales-order-list-filters select{width:100%!important;min-width:0!important;font-size:12px!important;padding:7px 5px!important}
}

/* v0.15.900: 销售总额悬浮显示各公司在当前筛选结果中的金额。 */
.sales-order-filter-total{position:relative;cursor:help;outline:none}
.sales-order-filter-total>i{color:#73847b;font-size:11px;font-style:normal;transition:transform .18s ease}
.sales-order-filter-total:hover>i,
.sales-order-filter-total:focus>i,
.sales-order-filter-total:focus-within>i{transform:rotate(180deg)}
.sales-order-company-totals{
  position:absolute;
  z-index:1800;
  top:calc(100% + 7px);
  left:0;
  display:flex;
  visibility:hidden;
  flex-direction:column;
  gap:4px;
  width:max-content;
  min-width:240px;
  max-width:min(380px,calc(100vw - 32px));
  padding:10px 12px;
  border:1px solid #d6e2dc;
  border-radius:10px;
  opacity:0;
  color:#34463d;
  background:#fff;
  box-shadow:0 12px 30px rgba(31,63,49,.17);
  pointer-events:none;
  transform:translateY(-4px);
  transition:opacity .16s ease,transform .16s ease,visibility .16s;
}
.sales-order-filter-total:hover>.sales-order-company-totals,
.sales-order-filter-total:focus>.sales-order-company-totals,
.sales-order-filter-total:focus-within>.sales-order-company-totals{
  visibility:visible;
  opacity:1;
  transform:translateY(0);
}
.sales-order-company-totals>strong{margin-bottom:4px;color:#234b3d;font-size:13px}
.sales-order-company-totals>span{display:flex;align-items:center;justify-content:space-between;gap:24px;min-width:0;padding:5px 0;border-top:1px dashed #e2e9e5}
.sales-order-company-totals>span>em{overflow:hidden;max-width:230px;color:#53645b;font-size:13px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}
.sales-order-company-totals>span>b{flex:0 0 auto;color:#17664f;font-size:13px!important;font-variant-numeric:tabular-nums}
.sales-order-company-totals>small{padding:5px 0;color:#819087;font-size:12px}
@media(max-width:700px){
  .sales-order-company-totals{position:fixed;top:64px;right:12px;left:12px;width:auto;max-width:none}
}

/* v0.16.038: 登记收款的订单日期筛选和全选。 */
.receipt-order-head{display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:12px!important;padding:10px 0!important}
.receipt-order-head>div:first-child{min-width:0}
.receipt-order-head h3{margin:0 0 2px!important}
.receipt-order-head small{display:block;color:var(--muted)}
.receipt-order-filters{display:flex;align-items:center;gap:6px}
.receipt-order-filters input{box-sizing:border-box!important;width:142px!important;height:38px!important;min-height:38px!important;margin:0!important;padding:6px 8px!important}
.receipt-order-filters>span{color:var(--muted);font-size:12px}
.receipt-order-filters button{width:auto!important;min-width:64px!important;height:38px!important;min-height:38px!important;margin:0!important;padding:6px 12px!important}
.receipt-order-filters button.is-active{color:#17634f!important;background:#e8f3ee!important}
.receipt-order-row.receipt-order-filtered-out{display:none!important}
@media(max-width:760px){
  .receipt-order-head{align-items:stretch!important;flex-direction:column!important}
  .receipt-order-filters{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto}
  .receipt-order-filters input{width:100%!important}
}

/* v0.15.924: compact receivables while showing order and recipient context. */
html body .receivable-table{width:100%!important;min-width:0!important;table-layout:fixed!important}
html body .receivable-table th,html body .receivable-table td{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body .receivable-table th:nth-child(1){width:8%!important}
html body .receivable-table th:nth-child(2){width:12%!important}
html body .receivable-table th:nth-child(3){width:12%!important}
html body .receivable-table th:nth-child(4){width:13%!important}
html body .receivable-table th:nth-child(5){width:11%!important}
html body .receivable-table th:nth-child(6){width:11%!important}
html body .receivable-table th:nth-child(7),html body .receivable-table th:nth-child(8),html body .receivable-table th:nth-child(9){width:11%!important}
html body .receivable-table .receivable-order-date{font-variant-numeric:tabular-nums}
html body .receipt-modal{overflow:hidden!important}
html body .receipt-modal .receipt-form{display:flex;flex-direction:column;box-sizing:border-box;height:calc(90vh - 69px);max-height:760px;overflow:hidden;padding-bottom:0!important}
html body .receipt-modal .receipt-grid{flex:0 0 auto}
html body .receipt-modal .receipt-orders{flex:1 1 auto;min-height:120px;overflow-x:hidden;overflow-y:auto;margin-top:10px;padding-right:4px}
html body .receipt-modal .receipt-orders>.section-head{position:sticky;z-index:2;top:0;margin:0;padding:8px 4px;background:#fff}
html body .receipt-modal .receipt-order-row{gap:8px;padding:5px 4px;line-height:1.25}
html body .receipt-modal .receipt-order-row span small{margin-top:2px;font-size:11px}
html body .receipt-modal .receipt-order-row input[type=number]{height:36px;min-height:36px;padding:6px 8px}
html body .receipt-modal .receipt-modal-footer{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:16px;margin:0 -18px;padding:10px 18px;border-top:1px solid #dfe7e2;background:#fff;box-shadow:0 -6px 16px rgba(32,62,49,.06)}
html body .receipt-modal .receipt-total{margin:0;font-size:15px}
html body .receipt-modal .receipt-submit{width:auto;min-width:106px;margin:0}
@media(max-width:720px){html body .receipt-modal .receipt-form{height:calc(90vh - 62px)}html body .receipt-modal .receipt-modal-footer{margin-right:-18px;margin-left:-18px}}

/* v0.15.927 receivable settlement difference and write-off controls. */
html body .receipt-modal .receipt-difference-action[hidden],html body .receipt-modal .receipt-difference-total[hidden],html body .receipt-modal .receipt-invoice-row .invoice-extra[hidden]{display:none!important}
html body .receipt-modal .receipt-difference-action select{box-sizing:border-box;height:42px!important;min-height:42px!important;margin:0!important;padding:8px 34px 8px 11px!important;line-height:24px!important;text-align:left!important}
html body .receipt-modal .receipt-difference-action{grid-column:span 1}
html body .receipt-modal .receipt-invoice-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:end}
html body .receipt-modal .receipt-invoice-row .invoice-extra{min-width:0;margin:0}
html body .receipt-modal .receipt-difference-total{color:#9a5c08;font-size:15px;white-space:nowrap}
html body .receipt-modal .receipt-form-feedback{flex:0 0 auto;margin:8px 0;padding:9px 12px}
html body .receipt-modal .receipt-modal-footer{flex-wrap:wrap}
html body .receipt-modal .receipt-total,html body .receipt-modal .receipt-difference-total{font-variant-numeric:tabular-nums}

/* v0.15.928: a selected write-off remains pending until finance approval. */
html body .tag.is-writeoff-pending{color:#8a5600!important;border-color:#efc56d!important;background:#fff1c9!important}
html body .receivable-table tbody tr.is-writeoff-pending td{background:#fff9e8!important}
html body .receivable-table tbody tr.is-writeoff-pending td:first-child{box-shadow:inset 4px 0 #dda62d}
@media(max-width:520px){html body .receipt-modal .receipt-invoice-row{grid-template-columns:1fr}}

/* v0.15.987: override the legacy modal rule that made the sales-item table overflow visible. */
html body .oa-modal-body #supply-sales-form .table-wrap.sales-items-scroll:has(#sales-items),
html body #supply-sales-form .table-wrap.sales-items-scroll:has(#sales-items){
  display:block!important;
  height:clamp(230px,42vh,430px)!important;
  min-height:230px!important;
  max-height:430px!important;
  overflow-x:hidden!important;
  overflow-y:scroll!important;
  scrollbar-gutter:stable both-edges;
  overscroll-behavior:contain;
  contain:paint;
}
html body .oa-modal-body #supply-sales-form .sales-items-scroll::-webkit-scrollbar,
html body #supply-sales-form .sales-items-scroll::-webkit-scrollbar{width:10px;height:10px}
html body .oa-modal-body #supply-sales-form .sales-items-scroll::-webkit-scrollbar-thumb,
html body #supply-sales-form .sales-items-scroll::-webkit-scrollbar-thumb{border:2px solid #f2f6f3;border-radius:8px;background:#9fb4a8}
html body .oa-modal-body #supply-sales-form .sales-items-scroll::-webkit-scrollbar-track,
html body #supply-sales-form .sales-items-scroll::-webkit-scrollbar-track{background:#f2f6f3}
@media(max-width:760px){
  html body .oa-modal-body #supply-sales-form .table-wrap.sales-items-scroll:has(#sales-items),
  html body #supply-sales-form .table-wrap.sales-items-scroll:has(#sales-items){
    height:min(52vh,390px)!important;
    min-height:220px!important;
    max-height:390px!important;
    overflow-x:auto!important;
    overflow-y:scroll!important;
  }
}

/* v0.15.988: suppress the legacy print-template heading before the sales list is enhanced. */
html body .workspace main .sales-order-list-panel > .section-head{
  display:none!important;
}

/* v0.15.990: keep invoice detail actions fully inside the modal header. */
html body dialog.invoice-upload-dialog{
  box-sizing:border-box!important;
  width:min(760px,calc(100vw - 24px))!important;
  max-width:calc(100vw - 24px)!important;
}
html body dialog.invoice-upload-dialog > .oa-modal-head{
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto 40px!important;
  column-gap:10px!important;
  width:100%!important;
  min-width:0!important;
  padding:16px 18px!important;
  overflow:visible!important;
}
html body dialog.invoice-upload-dialog > .oa-modal-head > .invoice-header-actions.is-editing{
  width:200px!important;
  min-width:200px!important;
  max-width:200px!important;
}
html body dialog.invoice-upload-dialog > .oa-modal-head > h2{
  grid-column:1!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
html body dialog.invoice-upload-dialog > .oa-modal-head > .invoice-header-actions{
  grid-column:2!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  box-sizing:border-box!important;
  width:120px!important;
  min-width:120px!important;
  max-width:120px!important;
  margin:0!important;
  overflow:visible!important;
}
html body dialog.invoice-upload-dialog .invoice-header-actions.is-editing .detail-action-split{
  grid-template-columns:66px 88px 32px!important;
  gap:7px!important;
  width:200px!important;
  min-width:200px!important;
  max-width:200px!important;
}
html body dialog.invoice-upload-dialog > .oa-modal-head > .invoice-header-actions[hidden]{display:none!important}
html body dialog.invoice-upload-dialog .invoice-header-actions .detail-action-split{
  display:grid!important;
  grid-template-columns:88px 32px!important;
  width:120px!important;
  min-width:120px!important;
  max-width:120px!important;
  overflow:visible!important;
}
html body dialog.invoice-upload-dialog .invoice-header-actions .invoice-edit-cancel[hidden],
html body dialog.invoice-upload-dialog .invoice-header-actions .invoice-edit-toggle[hidden],
html body dialog.invoice-upload-dialog .invoice-header-actions .detail-action-arrow[hidden]{display:none!important}
html body dialog.invoice-upload-dialog .invoice-header-actions .invoice-edit-toggle{
  grid-column:1!important;
  box-sizing:border-box!important;
  width:88px!important;
  min-width:88px!important;
  max-width:88px!important;
  padding:7px 10px!important;
}
html body dialog.invoice-upload-dialog .invoice-header-actions.is-editing .invoice-edit-cancel{grid-column:1!important;margin:0!important}
html body dialog.invoice-upload-dialog .invoice-header-actions.is-editing .invoice-edit-toggle{grid-column:2!important}
html body dialog.invoice-upload-dialog .invoice-header-actions.is-editing .detail-action-arrow{grid-column:3!important}
html body dialog.invoice-upload-dialog .invoice-header-actions .detail-action-arrow{
  grid-column:2!important;
  box-sizing:border-box!important;
  width:32px!important;
  min-width:32px!important;
  max-width:32px!important;
}
html body dialog.invoice-upload-dialog > .oa-modal-head > .oa-modal-close{
  grid-column:3!important;
  justify-self:end!important;
  box-sizing:border-box!important;
  width:38px!important;
  min-width:38px!important;
  max-width:38px!important;
  margin:0!important;
}
html body dialog.invoice-upload-dialog .invoice-header-actions .detail-action-menu{
  right:0!important;
  left:auto!important;
  z-index:1000!important;
}
/* A saved invoice registration always exposes the same edit + dropdown-delete action
   used by the other detail dialogs. State is owned by the dialog, not stale hidden flags. */
html body dialog.invoice-upload-dialog.invoice-has-delete-action .invoice-header-actions .detail-action-arrow{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
html body dialog.invoice-upload-dialog.invoice-has-delete-action .invoice-header-actions .detail-action-menu:not([hidden]){
  overflow:visible!important;
}
html body dialog.invoice-upload-dialog:not(.invoice-has-delete-action) .invoice-header-actions .detail-action-arrow,
html body dialog.invoice-upload-dialog:not(.invoice-has-delete-action) .invoice-header-actions .detail-action-menu{
  display:none!important;
}
html body dialog.invoice-upload-dialog .invoice-header-actions button:focus:not(:focus-visible),
html body dialog.invoice-upload-dialog > .oa-modal-head > .oa-modal-close:focus:not(:focus-visible){
  outline:none!important;
  box-shadow:none!important;
}
html body dialog.invoice-upload-dialog .invoice-header-actions button:focus-visible,
html body dialog.invoice-upload-dialog > .oa-modal-head > .oa-modal-close:focus-visible{
  outline:2px solid rgba(34,122,98,.38)!important;
  outline-offset:2px!important;
}
.invoice-upload-form > .invoice-registration-subtable{
  grid-column:1/-1;
  min-width:0;
  overflow:hidden;
  border:1px solid #dbe5df;
  border-radius:10px;
  background:#fff;
}
.invoice-registration-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:48px;
  padding:8px 10px 8px 14px;
  border-bottom:1px solid #e2e9e5;
  background:#f4f8f6;
}
.invoice-registration-head > b{display:flex;align-items:center;gap:7px}
.invoice-registration-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
  height:22px;
  padding:0 6px;
  border-radius:999px;
  color:#17634f;
  background:#deeee6;
  font-size:11px;
}
.invoice-registration-add{
  width:34px!important;
  min-width:34px!important;
  height:34px!important;
  margin:0!important;
  padding:0!important;
  border-radius:8px!important;
  font-size:20px!important;
  line-height:1!important;
}
.invoice-registration-subtable .table-wrap{max-height:210px;margin:0!important;overflow:auto}
.invoice-registration-subtable table{table-layout:fixed}
.invoice-registration-subtable :is(th,td){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.invoice-registration-subtable :is(th,td):nth-child(1){width:22%}
.invoice-registration-subtable :is(th,td):nth-child(2){width:22%}
.invoice-registration-subtable :is(th,td):nth-child(3){width:36%}
.invoice-registration-subtable :is(th,td):nth-child(4){width:20%}
.invoice-registration-row{cursor:pointer}
.invoice-registration-row:hover td{background:#edf6f1!important}
.invoice-registration-row.is-active td{background:#e2f1e9!important}
.invoice-registration-row.is-active td:first-child{box-shadow:inset 3px 0 #227a62}

/* v0.16.000: invoice master and registration detail are separate records/dialogs. */
.invoice-master-form>.invoice-registration-subtable{
  min-width:0;
  overflow:hidden;
  border:1px solid #dbe5df;
  border-radius:10px;
  background:#fff;
}
.invoice-registration-dialog[open]{overflow:visible!important}
.invoice-registration-dialog>.oa-modal-head{overflow:visible!important}
.invoice-registration-dialog .invoice-v2-header-actions{margin-left:auto;overflow:visible}
.invoice-registration-dialog .detail-action-menu{right:0;left:auto;z-index:1000}
.invoice-registration-file{color:#17634f;font-weight:700}

/* v0.16.001: compact invoice master layout and three-column registration list. */
html body dialog.invoice-upload-dialog .invoice-master-edit-fields{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
  min-height:69px;
}
html body dialog.invoice-upload-dialog .invoice-master-edit-fields label{margin:0!important}
html body dialog.invoice-upload-dialog .invoice-master-form.invoice-expense-master .invoice-master-edit-fields>label:first-child{grid-column:1/-1}
html body dialog.invoice-upload-dialog .invoice-master-form input:disabled{
  color:#23372e!important;
  border-color:#dbe5df!important;
  background:#f4f7f5!important;
  opacity:1!important;
  cursor:default!important;
}
html body dialog.invoice-upload-dialog .invoice-business-summary{gap:8px!important}
html body dialog.invoice-upload-dialog .invoice-business-summary>div{padding:8px 10px!important}
html body dialog.invoice-upload-dialog .invoice-registration-head{margin-bottom:0!important}
html body dialog.invoice-upload-dialog .invoice-registration-add{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:88px!important;
  height:34px!important;
  padding:0 14px!important;
  font-size:13px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
html body dialog.invoice-upload-dialog .invoice-registration-subtable .table-wrap{
  width:100%!important;
  max-width:100%!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
}
html body dialog.invoice-upload-dialog .invoice-registration-subtable table{
  width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
}
html body dialog.invoice-upload-dialog .invoice-registration-subtable :is(th,td){
  box-sizing:border-box!important;
  max-width:none!important;
}
html body dialog.invoice-upload-dialog .invoice-registration-subtable :is(th,td):nth-child(1){width:25%!important;white-space:nowrap!important}
html body dialog.invoice-upload-dialog .invoice-registration-subtable :is(th,td):nth-child(2){width:23%!important;white-space:nowrap!important}
html body dialog.invoice-upload-dialog .invoice-registration-subtable :is(th,td):nth-child(3){width:52%!important;white-space:normal!important;overflow-wrap:anywhere!important}
@media(max-width:620px){
  html body dialog.invoice-upload-dialog .invoice-master-edit-fields{grid-template-columns:1fr!important;min-height:0}
  html body dialog.invoice-upload-dialog .invoice-master-form.invoice-expense-master .invoice-master-edit-fields>label:first-child{grid-column:1}
  html body dialog.invoice-upload-dialog .invoice-registration-subtable :is(th,td):nth-child(1){width:29%!important}
  html body dialog.invoice-upload-dialog .invoice-registration-subtable :is(th,td):nth-child(2){width:25%!important}
  html body dialog.invoice-upload-dialog .invoice-registration-subtable :is(th,td):nth-child(3){width:46%!important}
}

/* v0.16.003: keep the searchable customer control aligned with receivable filters. */
html body .receivable-list-filters .receivable-customer-filter>.relation-search-combobox{
  align-self:center!important;
  box-sizing:border-box!important;
  width:250px!important;
  min-width:250px!important;
  height:36px!important;
  min-height:36px!important;
  margin:0!important;
}
html body .receivable-list-filters .receivable-customer-filter .relation-search-input{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  height:36px!important;
  min-height:36px!important;
  margin:0!important;
  padding:5px 34px 5px 11px!important;
  line-height:24px!important;
}
html body .receivable-list-filters .receivable-customer-filter .relation-search-menu{
  top:calc(100% + 6px)!important;
  right:0!important;
  left:0!important;
  width:100%!important;
  min-width:100%!important;
}
html body .receipt-grid>label>.relation-search-combobox{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
}
html body .receipt-grid>label>.relation-search-combobox>.relation-search-input{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
}
/* v0.16.039: 收款表单所有首行组件与动态差额组件保持同一基线。 */
html body .receipt-modal .receipt-grid{
  align-items:end!important;
}
html body .receipt-modal .receipt-grid>label,
html body .receipt-modal .receipt-grid>.receipt-invoice-row{
  box-sizing:border-box!important;
  min-width:0!important;
  margin:0!important;
}
html body .receipt-modal .receipt-grid>label{
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-end!important;
}
html body .receipt-modal .receipt-grid>label>input,
html body .receipt-modal .receipt-grid>label>select,
html body .receipt-modal .receipt-grid>label>.relation-search-combobox,
html body .receipt-modal .receipt-grid>label>.relation-search-combobox>.relation-search-input,
html body .receipt-modal .receipt-difference-action>select{
  box-sizing:border-box!important;
  width:100%!important;
  height:42px!important;
  min-height:42px!important;
  margin:0!important;
  line-height:24px!important;
}
html body .receipt-modal .receipt-grid>label>input[type=date]{
  padding-top:8px!important;
  padding-bottom:8px!important;
}
@media(max-width:760px){
  html body .receivable-list-filters .receivable-customer-filter>.relation-search-combobox{
    width:100%!important;
    min-width:0!important;
  }
}

/* After-sales status uses a strong warm/green contrast in lists, mobile cards and detail. */
.after-sale-status-tag{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:64px!important;
  padding:5px 10px!important;
  border:1px solid transparent!important;
  border-radius:999px!important;
  font-weight:800!important;
  line-height:1.2!important;
}
.after-sale-status-processing{
  color:#9a5700!important;
  border-color:#efc36b!important;
  background:#fff0c7!important;
  box-shadow:0 2px 7px rgba(183,110,0,.14)!important;
}
.after-sale-status-completed{
  color:#0c6849!important;
  border-color:#83cbb0!important;
  background:#d9f2e6!important;
  box-shadow:0 2px 7px rgba(20,116,82,.13)!important;
}
.after-sale-status-refund_pending{
  color:#9b2c56!important;
  border-color:#e8a8c0!important;
  background:#ffedf4!important;
  box-shadow:0 2px 7px rgba(155,44,86,.13)!important;
}
.after-sale-list-row.after-sale-row-processing>td:first-child{box-shadow:inset 4px 0 #e5a62f}
.after-sale-list-row.after-sale-row-refund_pending>td:first-child{box-shadow:inset 4px 0 #cf5d87}
.after-sale-list-row.after-sale-row-completed>td:first-child{box-shadow:inset 4px 0 #2c9a73}
@media(max-width:760px){
  .after-sale-list-row.after-sale-row-processing{border-left:4px solid #e5a62f!important}
  .after-sale-list-row.after-sale-row-refund_pending{border-left:4px solid #cf5d87!important}
  .after-sale-list-row.after-sale-row-completed{border-left:4px solid #2c9a73!important}
}
@media(max-width:520px){
  html body dialog.invoice-upload-dialog > .oa-modal-head{
    grid-template-columns:minmax(0,1fr) auto 38px!important;
    column-gap:6px!important;
    padding:12px!important;
  }
  html body dialog.invoice-upload-dialog > .oa-modal-head > .invoice-header-actions,
  html body dialog.invoice-upload-dialog .invoice-header-actions .detail-action-split{
    width:104px!important;
    min-width:104px!important;
    max-width:104px!important;
  }
  html body dialog.invoice-upload-dialog .invoice-header-actions .detail-action-split{grid-template-columns:74px 30px!important}
  html body dialog.invoice-upload-dialog .invoice-header-actions .invoice-edit-toggle{width:74px!important;min-width:74px!important;max-width:74px!important}
  html body dialog.invoice-upload-dialog .invoice-header-actions .detail-action-arrow{width:30px!important;min-width:30px!important;max-width:30px!important}
  html body dialog.invoice-upload-dialog > .oa-modal-head > .invoice-header-actions.is-editing,
  html body dialog.invoice-upload-dialog .invoice-header-actions.is-editing .detail-action-split{
    width:174px!important;
    min-width:174px!important;
    max-width:174px!important;
  }
  html body dialog.invoice-upload-dialog .invoice-header-actions.is-editing .detail-action-split{grid-template-columns:56px 74px 30px!important;gap:7px!important}
}
/* Customer quotation: header batch-price launcher and compact import dialog. */
.quotation-batch-price-header-button {
    width: auto !important;
    min-width: 104px !important;
    height: 36px !important;
    margin: 0 8px 0 auto !important;
    padding: 0 13px !important;
    border: 1px solid #b9ddcf !important;
    border-radius: 8px !important;
    color: #116a4f !important;
    background: #edf7f2 !important;
}
.quotation-batch-price-dialog { width: min(560px, 92vw) !important; }
.quotation-batch-price-dialog .oa-modal-body { display: grid; gap: 12px; padding: 18px !important; }
.quotation-batch-price-dialog-field { display: grid; gap: 7px; margin: 0; }
.quotation-batch-price-dialog-field textarea { width: 100%; min-height: 230px; resize: vertical; }
.quotation-batch-price-dialog-actions { display: flex; justify-content: flex-end; gap: 10px; }
.quotation-batch-price-dialog-actions button { width: auto !important; min-width: 92px; margin: 0 !important; }
.quotation-batch-price-status { line-height: 1.55; color: #66756e; }
.quotation-batch-price-status.is-error { color: #b03737; }
@media (max-width: 650px) {
    .quotation-batch-price-header-button { min-width: 82px !important; padding: 0 9px !important; font-size: 12px !important; }
}
/* Unified attachment presentation: finance files and document uploads follow the expense attachment standard. */
.oa-standard-attachment-field,
.finance-file-upload-field {
    min-width: 0 !important;
    overflow: visible !important;
}
.oa-standard-attachment-field .document-file-row,
.finance-file-upload-field .finance-file-upload-line {
    display: flex !important;
    align-items: center !important;
    align-content: flex-start !important;
    flex-wrap: wrap !important;
    gap: 6px 10px !important;
    width: 100% !important;
    overflow: visible !important;
}
.oa-standard-attachment-field .expense-create-upload-line,
.finance-file-upload-field .expense-create-upload-line {
    flex: 0 0 100% !important;
    margin: 6px 0 0 !important;
}
.oa-standard-attachment-field .expense-create-upload-control,
.finance-file-upload-field .expense-create-upload-control {
    flex: 0 0 min(240px, 100%) !important;
    width: min(240px, 100%) !important;
}
.oa-standard-attachment-field .expense-selected-file-list,
.finance-file-upload-field .expense-selected-file-list {
    flex: 1 1 280px !important;
    min-width: 0 !important;
    margin: 6px 0 0 !important;
}
.finance-file-attachments.oa-standard-saved-attachments {
    display: block !important;
    margin-top: 14px !important;
    padding: 13px !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 9px !important;
    background: #f4f7f5 !important;
}
.finance-file-attachments.oa-standard-saved-attachments > h3 {
    margin: 0 0 8px !important;
    font-size: 13px !important;
    color: #74837b !important;
}
.finance-file-attachments.oa-standard-saved-attachments .finance-file-attachment-list.expense-attachment-list {
    display: flex !important;
    align-items: flex-start !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    margin: 0 !important;
    overflow: visible !important;
}
.finance-file-attachments.oa-standard-saved-attachments article.expense-attachment-item {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    flex: 0 1 auto !important;
    width: max-content !important;
    max-width: 100% !important;
    min-height: 44px !important;
    padding: 6px 7px 6px 10px !important;
    overflow: visible !important;
    border: 1px solid #dfe8e3 !important;
    border-radius: 8px !important;
    background: #fff !important;
}
.finance-file-attachments.oa-standard-saved-attachments .expense-file-name {
    display: inline-flex !important;
    align-items: center !important;
    max-width: 260px !important;
    min-height: 24px !important;
    overflow: hidden !important;
    border: 0 !important;
    color: #236f58 !important;
    background: transparent !important;
    font-weight: 600 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
.finance-file-attachments.oa-standard-saved-attachments .expense-file-more {
    flex: 0 0 25px !important;
    width: 25px !important;
    height: 28px !important;
    min-width: 25px !important;
}
.document-current-file.document-current-standard-file {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    width: max-content !important;
    max-width: 100% !important;
    min-height: 44px !important;
    margin: 6px 0 0 !important;
    padding: 6px 7px 6px 10px !important;
    overflow: visible !important;
    border: 1px solid #dfe8e3 !important;
    border-radius: 8px !important;
    background: #f4f7f5 !important;
}
.document-current-standard-file .expense-file-name {
    max-width: 260px !important;
    overflow: hidden !important;
    color: #236f58 !important;
    font-weight: 600 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
.document-current-standard-file .expense-file-actions {
    position: absolute !important;
    z-index: 180 !important;
    top: calc(100% + 5px) !important;
    right: 0 !important;
    display: none !important;
    min-width: 112px !important;
    padding: 6px !important;
    border: 1px solid #d9e4de !important;
    border-radius: 9px !important;
    background: #fff !important;
    box-shadow: 0 10px 28px rgba(28,62,49,.18) !important;
}
.document-current-standard-file.is-menu-open .expense-file-actions { display: flex !important; }
.document-current-standard-file .expense-file-actions a { width: 100% !important; padding: 6px 9px !important; }
@media (max-width: 620px) {
    .oa-standard-attachment-field .expense-create-upload-control,
    .finance-file-upload-field .expense-create-upload-control,
    .oa-standard-attachment-field .expense-selected-file-list,
    .finance-file-upload-field .expense-selected-file-list { flex-basis: 100% !important; width: 100% !important; }
}

/* v0.16.013 final attachment overrides (must remain after legacy rules). */
.product-image-attachment-field.is-product-image-readonly .expense-create-upload-control{opacity:.62!important;pointer-events:none!important}
.product-image-attachment-field.is-product-image-readonly .product-image-file-more,.product-image-attachment-field.is-product-image-readonly .expense-file-actions{display:none!important}
.product-image-attachment-field.is-product-image-readonly .expense-file-name{pointer-events:auto!important;cursor:pointer!important}
.employee-event-attachment-field .expense-selected-file-item{position:relative!important;overflow:visible!important}
.employee-event-attachment-field .expense-file-actions{position:absolute!important;z-index:2147483600!important;top:calc(100% + 5px)!important;right:0!important;display:none!important;min-width:112px!important;padding:6px!important;border:1px solid #d9e4de!important;border-radius:9px!important;background:#fff!important;box-shadow:0 10px 28px rgba(28,62,49,.24)!important}
.employee-event-attachment-field .expense-selected-file-item.is-menu-open .expense-file-actions{display:flex!important;align-items:stretch!important;flex-direction:column!important;gap:3px!important}
.employee-event-attachment-field .expense-file-actions button,.employee-event-attachment-field .expense-file-actions a{justify-content:flex-start!important;width:100%!important;height:32px!important;margin:0!important;padding:5px 9px!important;text-align:left!important}
.finance-file-upload-field>.finance-file-upload-line,.finance-file-upload-field>.expense-create-upload-line{display:flex!important;align-items:flex-start!important;flex-wrap:wrap!important;gap:6px 10px!important;width:100%!important;margin:0!important;overflow:visible!important}
.finance-file-upload-field .expense-create-upload-control{flex:0 0 min(240px,100%)!important;width:min(240px,100%)!important}
.finance-file-upload-field>.finance-file-upload-line>.expense-selected-file-list,.finance-file-upload-field>.expense-create-upload-line>.expense-selected-file-list{display:flex!important;flex:1 1 280px!important;align-items:flex-start!important;flex-wrap:wrap!important;gap:6px!important;min-width:0!important;margin:0!important;overflow:visible!important}
@media(max-width:620px){.finance-file-upload-field .expense-create-upload-control,.finance-file-upload-field>.finance-file-upload-line>.expense-selected-file-list,.finance-file-upload-field>.expense-create-upload-line>.expense-selected-file-list{flex-basis:100%!important;width:100%!important}}

/* v0.16.014: employee detail owns exactly one attachment manager. */
.employee-stable-detail-form .employee-detail-unified-attachments{grid-column:1/-1!important;width:100%!important;box-sizing:border-box!important;overflow:visible!important}
.employee-stable-detail-form .employee-detail-unified-attachments .expense-detail-attachment-line{overflow:visible!important}
.employee-stable-detail-form .employee-detail-unified-attachments .expense-file-actions{position:fixed!important;z-index:2147483600!important;display:none!important;min-width:112px!important;padding:6px!important;border:1px solid #d9e4de!important;border-radius:9px!important;background:#fff!important;box-shadow:0 10px 28px rgba(28,62,49,.28)!important}
.employee-stable-detail-form .employee-detail-unified-attachments .expense-attachment-item.is-menu-open .expense-file-actions{display:flex!important;align-items:stretch!important;flex-direction:column!important;gap:3px!important}
.employee-stable-detail-form .employee-detail-unified-attachments .expense-file-actions a,.employee-stable-detail-form .employee-detail-unified-attachments .expense-file-actions button{justify-content:flex-start!important;width:100%!important;height:32px!important;margin:0!important;padding:5px 9px!important;text-align:left!important}

/* v0.16.015: stable expense editing keeps one layout and one attachment manager. */
.modal-header-actions>.record-header-edit-cancel{align-self:stretch!important;width:auto!important;min-width:64px!important;height:auto!important;margin:0 7px 0 0!important;padding:7px 13px!important;border-radius:7px!important;color:#526159!important;background:#e6ebe8!important}
.modal-header-actions>.record-header-edit-cancel:hover{background:#d9e0dc!important}
.detail-action-split.is-editing .detail-action-edit{min-width:96px!important;border-radius:7px!important}
.detail-action-split.is-editing .detail-action-arrow{display:none!important}
.record-stable-detail-form.expense-detail-create-layout .expense-primary-row,.record-stable-detail-form.expense-detail-create-layout .expense-linked-row,.record-stable-detail-form.expense-detail-create-layout .expense-transaction-row,.record-stable-detail-form.expense-detail-create-layout .expense-refund-row,.record-stable-detail-form.expense-detail-create-layout .expense-recipient-row,.record-stable-detail-form.expense-detail-create-layout .expense-attachment-row{width:100%!important;box-sizing:border-box!important}
.record-stable-detail-form.expense-detail-create-layout .expense-detail-unified-attachments{grid-column:1/-1!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important;overflow:visible!important}
.record-stable-detail-form.expense-detail-create-layout .expense-detail-unified-attachments .expense-detail-attachment-line{width:100%!important;min-width:0!important;overflow:visible!important}

/* v0.16.016: employee view and edit share one fixed field layout and header action order. */
.employee-stable-detail-form>.employee-form,
.employee-stable-detail-form.is-editing>.employee-form{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-template-areas:"employee-name employee-type employee-number employee-gender" "employee-company employee-ethnicity employee-education employee-native" "employee-phone employee-id-card employee-address employee-address" "employee-department employee-position employee-emergency employee-emergency-phone" "employee-bank employee-bank employee-hire employee-card" "employee-remark employee-remark employee-salary employee-ratio"!important;gap:8px 10px!important;width:100%!important;min-width:0!important;box-sizing:border-box!important}
.employee-stable-detail-form.is-editing label,.employee-stable-detail-form:not(.is-editing) label{min-width:0!important;margin:0!important}
.employee-stable-detail-form.is-editing :is(input,select,textarea),.employee-stable-detail-form:not(.is-editing) :is(input,select,textarea){box-sizing:border-box!important;width:100%!important;min-width:0!important;min-height:42px!important;margin-top:5px!important}
@media(max-width:760px){.employee-stable-detail-form>.employee-form,.employee-stable-detail-form.is-editing>.employee-form{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-areas:"employee-name employee-type" "employee-number employee-gender" "employee-company employee-ethnicity" "employee-education employee-native" "employee-phone employee-id-card" "employee-address employee-address" "employee-department employee-position" "employee-emergency employee-emergency-phone" "employee-bank employee-bank" "employee-hire employee-card" "employee-remark employee-remark" "employee-salary employee-ratio"!important}}
@media(max-width:520px){.employee-stable-detail-form>.employee-form,.employee-stable-detail-form.is-editing>.employee-form{grid-template-columns:1fr!important;grid-template-areas:"employee-name" "employee-type" "employee-number" "employee-gender" "employee-company" "employee-ethnicity" "employee-education" "employee-native" "employee-phone" "employee-id-card" "employee-address" "employee-department" "employee-position" "employee-emergency" "employee-emergency-phone" "employee-bank" "employee-hire" "employee-card" "employee-remark" "employee-salary" "employee-ratio"!important}}

/* v0.16.017: stable expense details never expose the obsolete full-page edit panel. */
.record-stable-detail-form.expense-detail-create-layout~.oa-inline-edit-panel,.generic-detail-main:has(.record-stable-detail-form.expense-detail-create-layout)>.oa-inline-edit-panel{display:none!important}

/* v0.16.018: one canonical saved-attachment picker inside expense details. */
.expense-detail-unified-attachments .expense-detail-attachment-line>.expense-detail-upload-control~.expense-detail-upload-control{display:none!important}
.expense-detail-unified-attachments .expense-detail-upload-control>button:not(.expense-detail-file-picker):not(.expense-detail-scan-picker),.expense-detail-unified-attachments .expense-detail-upload-control>.expense-create-upload-control,.expense-detail-unified-attachments .expense-detail-upload-control>.expense-create-file-picker{display:none!important}
.expense-detail-unified-attachments input[name="expense_attachments[]"]:not(.expense-detail-attachment-upload){display:none!important}

/* v0.16.019: employee details never fall back to the obsolete embedded edit page. */
.employee-profile:has(.employee-stable-detail-form)~.oa-inline-edit-panel,.detail-main:has(.employee-stable-detail-form)>.oa-inline-edit-panel{display:none!important}

/* v0.16.021: flatten expense attachment structure and keep the picker aligned. */
.expense-detail-create-layout .expense-attachment-row{display:block!important;width:100%!important;min-width:0!important}
.expense-detail-create-layout .expense-attachment-row>.expense-detail-unified-attachments{display:block!important;width:100%!important;margin:0!important;box-sizing:border-box!important}
.expense-detail-create-layout .expense-detail-unified-attachments>.expense-detail-attachment-line{display:flex!important;align-items:center!important;flex-wrap:wrap!important;width:100%!important;min-width:0!important}
.expense-detail-create-layout .expense-detail-unified-attachments .expense-detail-upload-control{position:relative!important;display:flex!important;align-items:center!important;flex:0 0 190px!important;width:190px!important;min-width:190px!important;max-width:190px!important;height:44px!important;overflow:hidden!important}

/* v0.16.022: employee attachment is a regular field and follows edit state. */
.employee-stable-detail-form .employee-field-attachments,.employee-stable-detail-form .employee-detail-unified-attachments{padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.employee-stable-detail-form .employee-field-attachments>.expense-attachment-note,.employee-stable-detail-form .employee-detail-unified-attachments>.expense-attachment-note{display:none!important}
.employee-stable-detail-form .employee-detail-unified-attachments>small{margin:0 0 5px!important;color:var(--muted)!important;font-size:11px!important}
.employee-stable-detail-form .employee-detail-unified-attachments>.expense-detail-attachment-line{margin:0!important}
.modal-header-actions.is-employee-stable-editing>.employee-header-edit-cancel{display:flex!important;align-items:center!important;justify-content:center!important;min-width:76px!important}
.modal-header-actions.is-employee-stable-editing .detail-action-edit{display:flex!important;align-items:center!important;justify-content:center!important;min-width:96px!important}

/* v0.16.023: expense attachment is a flat field and expense header actions are explicit. */
.record-stable-detail-form.expense-detail-create-layout .expense-detail-unified-attachments{padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.record-stable-detail-form.expense-detail-create-layout .expense-detail-unified-attachments>.expense-attachment-note{display:none!important}
.record-stable-detail-form.expense-detail-create-layout .expense-detail-unified-attachments>small{margin:0 0 5px!important;color:var(--muted)!important;font-size:11px!important}
.record-stable-detail-form.expense-detail-create-layout .expense-detail-unified-attachments>.expense-detail-attachment-line{margin:0!important}
.modal-header-actions.is-expense-stable-editing>.record-header-edit-cancel{display:flex!important;align-items:center!important;justify-content:center!important;min-width:76px!important}
.modal-header-actions.is-expense-stable-editing .detail-action-edit{display:flex!important;align-items:center!important;justify-content:center!important;min-width:96px!important}

/* v0.16.024: employee editing owns one stable header controller and a real company field. */
.employee-edit-six-row .employee-field-company>select,.employee-edit-six-row .employee-field-company>.relation-search-combobox{width:100%!important;min-width:0!important}
.modal-header-actions>.employee-detail-action-split{flex:0 0 auto!important}
.modal-header-actions.is-employee-stable-editing>.employee-detail-action-split .detail-action-arrow{display:none!important}

/* v0.16.025: expense details use one header controller and fully unlock attachments while editing. */
.record-stable-detail-form.expense-detail-create-layout .expense-detail-unified-attachments.is-attachment-editing .expense-detail-file-picker,.record-stable-detail-form.expense-detail-create-layout .expense-detail-unified-attachments.is-attachment-editing .expense-detail-scan-picker,.record-stable-detail-form.expense-detail-create-layout .expense-detail-unified-attachments.is-attachment-editing .expense-file-more{pointer-events:auto!important;opacity:1!important;cursor:pointer!important}

/* v0.16.026: employee form is rendered by the detail endpoint; expense conversion keeps one usable form. */
.employee-detail-server-form{width:100%!important;margin:0!important}
.employee-profile:has(.employee-detail-server-form)>.profile-grid{display:none!important}
.employee-detail-server-form .employee-field-attachments,.employee-detail-server-form .employee-detail-unified-attachments{padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.employee-detail-server-form .expense-attachment-note{display:none!important}
.record-stable-detail-form.expense-detail-create-layout .expense-attachment-row,.record-stable-detail-form.expense-detail-create-layout .expense-detail-unified-attachments{background:transparent!important;box-shadow:none!important}

/* v0.16.051: the saved attachment manager is the only attachment control in
   expense details; never render a create-picker shell inside it. */
.expense-detail-unified-attachments .expense-create-upload-line,
.expense-detail-unified-attachments .expense-create-upload-control,
.expense-detail-unified-attachments .expense-selected-file-list{display:none!important}
.record-stable-detail-form.expense-detail-create-layout .expense-attachment-row>.expense-detail-unified-attachments{padding:0!important;border:0!important;background:transparent!important}
/* v0.16.027: product cost batch entry gets a dedicated, readable workspace. */
.product-child-create-modal.is-product-cost-batch{width:min(1080px,calc(100vw - 32px))!important;max-width:1080px!important}
.product-child-create-modal.is-product-cost-batch .oa-modal-frame{height:min(760px,82vh)!important}
.related-product-create-page:has(.product-cost-create-form.is-batch-mode){padding:10px!important}
.related-product-create-page:has(.product-cost-create-form.is-batch-mode) .related-product-create-panel{max-width:none!important;padding:14px!important}
.product-cost-create-form.is-batch-mode{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;min-width:0}
.product-cost-create-form.is-batch-mode .product-cost-batch-fields{display:flex!important;flex-direction:column;min-width:0;overflow:hidden;border:1px solid #dce6e0;border-radius:12px;background:#fff}
.product-cost-create-form.is-batch-mode .product-cost-add-row{order:-2;align-self:flex-end;margin:10px 10px 8px!important;padding:8px 13px!important;border-radius:8px}
.product-cost-create-form.is-batch-mode .product-cost-batch-head{position:sticky;z-index:2;top:0;order:-1;margin:0;padding:9px 10px;border-top:1px solid #edf1ef;border-bottom:1px solid #dce6e0;background:#f2f7f4;color:#50675c;font-weight:700}
.product-cost-create-form.is-batch-mode .product-cost-batch-rows{max-height:52vh;overflow-x:hidden;overflow-y:auto;padding:8px 10px 10px;scrollbar-gutter:stable}
.product-cost-create-form.is-batch-mode .product-cost-batch-head,
.product-cost-create-form.is-batch-mode .product-cost-batch-row{grid-template-columns:minmax(150px,1.35fr) 96px 82px 92px 78px 100px minmax(145px,1fr) 36px!important;gap:8px!important;width:100%;box-sizing:border-box}
.product-cost-create-form.is-batch-mode .product-cost-batch-row{padding:2px 0}
.product-cost-create-form.is-batch-mode .product-cost-batch-row+.product-cost-batch-row{padding-top:9px;border-top:1px dashed #e5ece8}
.product-cost-create-form.is-batch-mode .product-cost-batch-row input{box-sizing:border-box;width:100%!important;height:42px!important;min-height:42px!important;margin:0!important;padding:9px 10px!important}
.product-cost-create-form.is-batch-mode .product-cost-line-total{color:#17634f;background:#f2f7f4!important;font-weight:800;text-align:right}
.product-cost-create-form.is-batch-mode .product-cost-remove-row{width:36px!important;height:36px!important;min-height:36px!important;align-self:center;border-radius:8px!important;font-size:19px}
.product-cost-create-form.is-batch-mode>.product-cost-save{position:sticky;z-index:3;bottom:0;justify-self:end!important;min-width:112px!important;margin:0!important;box-shadow:0 8px 20px rgba(21,83,62,.16)}
@media(max-width:800px){
  .product-child-create-modal.is-product-cost-batch{width:calc(100vw - 16px)!important}
  .product-cost-create-form.is-batch-mode .product-cost-batch-head{display:none!important}
  .product-cost-create-form.is-batch-mode .product-cost-batch-rows{max-height:58vh;padding:8px}
  .product-cost-create-form.is-batch-mode .product-cost-batch-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr)) 36px!important;gap:8px!important;padding:10px!important;border:1px solid #e0e8e3!important;border-radius:10px;background:#fbfdfc}
  .product-cost-create-form.is-batch-mode .product-cost-batch-row input:first-child,
  .product-cost-create-form.is-batch-mode .product-cost-batch-row input:nth-child(7){grid-column:1/3}
  .product-cost-create-form.is-batch-mode .product-cost-remove-row{grid-column:3;grid-row:1;align-self:center}
}

/* v0.16.028: both single and batch product-cost entry stay on one compact row. */
.product-child-create-modal.is-product-cost-entry{width:min(1100px,calc(100vw - 32px))!important;max-width:1100px!important}
.product-child-create-modal.is-product-cost-entry .oa-modal-frame{height:min(720px,80vh)!important}
.product-cost-create-form .product-cost-single-fields{display:grid!important;grid-template-columns:minmax(170px,1.45fr) 92px 78px 88px 76px 98px minmax(150px,1.15fr)!important;gap:8px!important;align-items:end;min-width:0}
.product-cost-create-form .product-cost-single-fields>label{min-width:0;margin:0!important}
.product-cost-create-form .product-cost-single-fields>label.product-cost-remark{grid-column:auto!important}
.product-cost-create-form .product-cost-single-fields :is(input,select,textarea){box-sizing:border-box;width:100%!important;height:42px!important;min-height:42px!important;margin-top:6px!important;padding:8px 9px!important}
.product-cost-create-form .product-cost-single-fields input[readonly]{text-align:right;color:#17634f;background:#f2f7f4;font-weight:800}
.product-cost-create-form.is-batch-mode .product-cost-batch-head,
.product-cost-create-form.is-batch-mode .product-cost-batch-row{grid-template-columns:minmax(170px,1.45fr) 92px 78px 88px 76px 98px minmax(150px,1.15fr) 36px!important}
@media(max-width:800px){
  .product-child-create-modal.is-product-cost-entry{width:calc(100vw - 16px)!important}
  .product-cost-create-form .product-cost-single-fields{min-width:850px;overflow:visible}
  .product-cost-create-form:has(.product-cost-single-fields:not([hidden])){overflow-x:auto}
  .product-cost-create-form.is-batch-mode .product-cost-batch-fields{overflow-x:auto!important}
  .product-cost-create-form.is-batch-mode .product-cost-batch-head{display:grid!important;min-width:900px!important}
  .product-cost-create-form.is-batch-mode .product-cost-batch-rows{max-height:58vh;overflow:auto!important;padding:8px 10px 10px}
  .product-cost-create-form.is-batch-mode .product-cost-batch-row{display:grid!important;grid-template-columns:minmax(170px,1.45fr) 92px 78px 88px 76px 98px minmax(150px,1.15fr) 36px!important;gap:8px!important;min-width:900px!important;padding:2px 0!important;border:0!important;border-radius:0!important;background:#fff!important}
  .product-cost-create-form.is-batch-mode .product-cost-batch-row+.product-cost-batch-row{padding-top:9px!important;border-top:1px dashed #e5ece8!important}
  .product-cost-create-form.is-batch-mode .product-cost-batch-row input:first-child,
  .product-cost-create-form.is-batch-mode .product-cost-batch-row input:nth-child(7){grid-column:auto!important}
  .product-cost-create-form.is-batch-mode .product-cost-remove-row{grid-column:auto!important;grid-row:auto!important}
}

/* v0.16.030: the embedded cost editor loses page-local CSS, so keep every cost on one shared grid row here. */
html body #product-cost-form .product-cost-batch-head,
html body #product-cost-form .product-cost-batch-row{display:grid!important;grid-template-columns:minmax(170px,1.45fr) 92px 78px 88px 76px 98px minmax(150px,1.15fr) 36px!important;gap:8px!important;align-items:center!important;width:100%!important;min-width:0!important;box-sizing:border-box!important}
html body #product-cost-form .product-cost-batch-rows{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px!important;width:100%!important;min-width:0!important}
html body #product-cost-form .product-cost-batch-row>input{display:block!important;box-sizing:border-box!important;width:100%!important;min-width:0!important;height:42px!important;margin:0!important}
html body #product-cost-form .product-cost-batch-row>.product-cost-remove-row{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:36px!important;min-width:36px!important;margin:0!important}
@media(max-width:800px){
  html body #product-cost-form .product-cost-batch-head,
  html body #product-cost-form .product-cost-batch-row{min-width:900px!important}
}

/* v0.16.031: compact adaptive height and a live grand-total footer. */
html body #product-cost-form .product-cost-batch-rows{max-height:300px!important;overflow-y:auto!important}
html body #product-cost-form .product-cost-save-bar{position:sticky;z-index:4;bottom:0;display:flex;grid-column:1/-1;align-items:center;justify-content:flex-end;gap:16px;min-height:52px;margin:0;padding:8px 2px 0;border-top:1px solid #e2e9e5;background:#fff}
html body #product-cost-form .product-cost-grand-total{display:inline-flex;align-items:baseline;gap:6px;color:#50635a;font-size:14px;white-space:nowrap}
html body #product-cost-form .product-cost-grand-total strong{color:#17634f;font-size:20px}
html body #product-cost-form .product-cost-save-bar>.product-cost-save{position:static!important;width:auto!important;min-width:112px!important;margin:0!important}
.product-child-create-modal.is-product-cost-entry .oa-modal-frame{height:min(540px,76vh)!important}

/* v0.16.054: sales-order delivery hover summary and separate A4/triplicate actions. */
.sales-order-row-actions{align-items:center;gap:5px!important;white-space:nowrap}
.sales-order-row-actions>a.button,.sales-order-row-actions>button{display:inline-flex!important;align-items:center;justify-content:center;width:auto!important;min-width:0!important;height:34px!important;margin:0!important;padding:0 9px!important;font-size:12px!important;line-height:1!important;white-space:nowrap}
.sales-order-row-actions .sales-print-a4{background:#17664f!important}
.sales-order-row-actions .sales-print-triplicate{color:#17664f!important;background:#e9f3ee!important;border:1px solid #bcd8ca!important}
.delivery-order-hover{position:fixed;z-index:10030;max-height:min(440px,70vh);padding:12px;border:1px solid #cfdcd5;border-radius:12px;background:#fff;box-shadow:0 18px 52px #17372a3d;color:#20362d;pointer-events:none}
.delivery-order-hover[hidden]{display:none!important}
.delivery-order-hover header,.delivery-order-hover footer{display:flex;align-items:center;justify-content:space-between;gap:14px}
.delivery-order-hover header{padding:0 2px 10px}.delivery-order-hover header b{font-size:15px}.delivery-order-hover header span{max-width:55%;color:#687b72;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.delivery-order-hover-scroll{max-height:300px;overflow:auto;border:1px solid #e0e8e4;border-radius:8px}
.delivery-order-hover table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}
.delivery-order-hover th,.delivery-order-hover td{padding:8px;border-bottom:1px solid #e7edea;text-align:left;overflow-wrap:anywhere}
.delivery-order-hover th{position:sticky;top:0;background:#f0f5f2;color:#50635a}.delivery-order-hover th:first-child{width:43%}.delivery-order-hover th:nth-child(2){width:18%}.delivery-order-hover th:nth-child(3){width:19%}.delivery-order-hover th:nth-child(4){width:20%}
.delivery-order-hover td:nth-child(n+2),.delivery-order-hover th:nth-child(n+2){text-align:right}.delivery-order-hover tbody tr:last-child td{border-bottom:0}
.delivery-order-hover footer{padding:10px 2px 0}.delivery-order-hover footer span{color:#718179}.delivery-order-hover footer strong{color:#a34d36;font-size:15px}
.sales-order-row-actions .sales-print-delivery{background:#17664f!important}
#delivery-template-picker .delivery-template-options{grid-template-columns:repeat(2,minmax(0,1fr))}
#delivery-template-picker .delivery-choice-a4{border-color:#bad7c9;background:#edf6f1}
#delivery-template-picker .delivery-choice-triplicate{border-color:#d8cfad;background:#faf7ea}
#delivery-template-picker .delivery-choice-a4:hover,#delivery-template-picker .delivery-choice-triplicate:hover{color:#fff;background:#17634f;border-color:#17634f}
@media(max-width:720px){.delivery-order-hover{display:none!important}.sales-order-row-actions{flex-wrap:wrap}.sales-order-row-actions>a.button,.sales-order-row-actions>button{padding:0 8px!important}}
@media(max-width:520px){#delivery-template-picker .delivery-template-options{grid-template-columns:1fr}}
/* v0.16.060: sales-order status/action columns are added by JavaScript.
   Keep the unfinished table invisible so refresh does not show a shifting layout. */
.sales-order-list-panel.sales-order-list-pending .table-wrap {
  visibility: hidden;
}

.sales-order-list-panel.sales-order-list-ready .table-wrap {
  visibility: visible;
}
.expense-recipient-row{grid-template-columns:repeat(3,minmax(0,1fr))}.expense-recipient-row .expense-recipient-field{grid-column:span 2}.expense-recipient-row:not(:has(>.expense-payroll-field:not([hidden]))){grid-template-columns:1fr}.expense-recipient-row:not(:has(>.expense-payroll-field:not([hidden]))) .expense-recipient-field{grid-column:auto}.expense-payroll-picker{min-width:0}.expense-payroll-picker select{height:44px!important;margin-top:6px!important}.generic-detail-main .detail-field-recipient_info{grid-column:span 2}.expense-payroll-detail-trigger{display:flex!important;align-items:center!important;justify-content:space-between!important;width:100%!important;min-height:44px!important;margin:0!important;padding:9px 11px!important;border:1px solid #b9d8c7!important;border-radius:9px!important;color:#17634f!important;background:#f2faf5!important;text-align:left!important}.expense-payroll-detail-trigger:hover{background:#e7f4ec!important}.expense-payroll-detail-trigger b{font-size:14px}.expense-payroll-detail-trigger span{font-size:12px;color:#5f776b}.expense-payroll-detail-dialog{width:min(980px,96vw)!important;max-height:90vh}.expense-payroll-detail-dialog .oa-modal-body{max-height:calc(90vh - 70px);overflow:auto}.expense-payroll-detail-dialog .table-wrap{margin:0}.expense-payroll-detail-dialog .payroll-dialog-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px}.expense-payroll-detail-dialog .payroll-dialog-summary p{margin:4px 0 0;color:#718078}.expense-payroll-detail-dialog .payroll-dialog-summary strong{font-size:22px;color:#17634f}@media(max-width:620px){.expense-recipient-row{grid-template-columns:1fr}.expense-recipient-row .expense-recipient-field{grid-column:auto}.generic-detail-main .detail-field-recipient_info{grid-column:auto}.expense-payroll-detail-dialog{width:98vw!important}}
.payroll-list-panel .table-wrap{overflow-x:auto}.payroll-list-panel .payroll-list-table{width:100%!important;min-width:960px;table-layout:fixed}.payroll-list-panel .payroll-list-table :is(th,td){width:12.5%!important;min-width:0;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere;word-break:break-word;vertical-align:top}
.detail-review-waiting .detail-review-actions{display:flex!important;flex:0 0 auto!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;gap:8px!important;width:auto!important;margin:0 0 0 auto!important}.detail-review-waiting .detail-review-actions button{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 auto!important;width:auto!important;min-width:84px!important;height:42px!important;margin:0!important;padding:8px 14px!important;white-space:nowrap!important}.detail-review-waiting .detail-review-actions .reject{color:#fff;background:#b84d42}@media(max-width:600px){.detail-review-waiting{flex-wrap:wrap}.detail-review-waiting .detail-review-actions{flex:1 0 100%!important;justify-content:flex-end;margin-top:2px!important}.detail-review-waiting .detail-review-actions button{flex:1 1 0!important}}

/* v0.16.105: approval cards reserve the upper-right for the amount only. */
html body .approval-hub .approval-task-card > header .approval-card-amount{min-width:132px!important;padding:4px 9px!important;border:1px solid #f0d2cc!important;border-radius:8px!important;background:#fff5f2!important;color:#a64235!important;font-size:21px!important;font-weight:900!important;line-height:1.2!important;text-align:right!important}html body .approval-hub .income-task > header .approval-card-amount{border-color:#c9e4d6!important;background:#effaf4!important;color:#167253!important}@media(max-width:600px){html body .approval-hub .approval-task-card > header .approval-card-amount{min-width:108px!important;font-size:18px!important}}

/* v0.16.107: keep restored detail actions fixed after a review completes. */
html body .generic-detail-main:has(> .detail-record-actions){position:relative!important;padding-top:58px!important}html body .generic-detail-main> .detail-record-actions{position:absolute!important;top:12px!important;right:12px!important;z-index:3!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;margin:0!important}html body .generic-detail-main> .detail-record-actions .button,html body .generic-detail-main> .detail-record-actions button{height:34px!important;min-width:76px!important;margin:0!important}@media(max-width:520px){html body .generic-detail-main:has(> .detail-record-actions){padding-top:54px!important}html body .generic-detail-main> .detail-record-actions{top:10px!important;right:10px!important}}

/* v0.16.109: modal detail actions are owned by the modal header from first paint. */
html body .generic-detail-page.generic-detail-modal .generic-detail-main> .detail-record-actions{display:none!important}

/* v0.16.111: do not expose the raw modal detail before enhancement finishes. */
html:has(.generic-detail-page.generic-detail-modal):not(.oa-generic-modal-ready){visibility:hidden!important}html.oa-generic-modal-ready:has(.generic-detail-page.generic-detail-modal){visibility:visible!important}

/* v0.16.114: inline errors for new expense fields. */
#expense-create-form label.oa-field-invalid{position:relative!important;z-index:20!important}#expense-create-form .oa-input-invalid{border-color:#ce544b!important;box-shadow:0 0 0 3px rgba(206,84,75,.14)!important}#expense-create-form .oa-field-validation-tip{position:absolute!important;z-index:100!important;top:calc(100% + 6px)!important;left:0!important;display:block!important;max-width:100%!important;padding:6px 9px!important;border-radius:6px!important;color:#fff!important;background:#b84d42!important;font-size:12px!important;line-height:1.25!important;white-space:nowrap!important;box-shadow:0 5px 14px rgba(112,39,34,.22)!important}#expense-create-form .oa-field-validation-tip:before{content:'';position:absolute;top:-5px;left:12px;border-right:5px solid transparent;border-bottom:5px solid #b84d42;border-left:5px solid transparent}

/* Message centre base styles. */
.header-user{position:relative}.oa-notification-centre{position:relative;display:flex;align-items:center}.oa-notification-list{max-height:455px;overflow:auto}.oa-notification-item{display:block!important;width:100%!important;margin:0!important;padding:12px 14px!important;border:0!important;border-bottom:1px solid #edf2ef!important;border-radius:0!important;color:#23352d!important;background:#fff!important;text-align:left!important}.oa-notification-item:hover{background:#f5faf7!important}.oa-notification-item.is-unread{background:#effaf4!important}.oa-notification-item b,.oa-notification-item span,.oa-notification-item small{display:block}.oa-notification-item b{margin-bottom:5px;color:#154e3d;font-size:13px}.oa-notification-item span{overflow:hidden;color:#52645b;font-size:12px;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}.oa-notification-item small{margin-top:5px;color:#8a9a91;font-size:11px}.oa-notification-empty{margin:0;padding:28px 16px;color:#849188;text-align:center;font-size:13px}

/* v0.16.167: clean animated bell and centred message dialog. */
.workspace>header>.header-right-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0;margin-left:auto}.header-right-actions>.header-message-slot{position:relative;z-index:80;display:flex;align-items:center;justify-content:center;flex:0 0 38px;width:38px;height:40px;margin:0;pointer-events:auto}.header-message-slot .oa-notification-centre{position:relative;display:flex;align-items:center;justify-content:center;width:38px;height:40px;pointer-events:auto}
.header-message-slot .oa-notification-bell{position:relative!important;z-index:2!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;width:38px!important;height:40px!important;min-width:38px!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#17634f!important;line-height:1!important;cursor:pointer!important;pointer-events:auto!important;overflow:visible!important}.header-message-slot .oa-notification-bell:hover,.header-message-slot .oa-notification-bell:focus-visible{background:transparent!important;color:#0f513e!important;box-shadow:none!important;transform:translateY(-1px)}.header-message-slot .oa-notification-bell svg{display:block!important;width:23px!important;height:23px!important;min-width:23px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important;pointer-events:none!important}.header-message-slot .oa-notification-bell.has-unread svg{animation:oa-notification-ring 2.8s ease-in-out infinite;transform-origin:50% 12%}@keyframes oa-notification-ring{0%,72%,100%{transform:rotate(0)}76%{transform:rotate(12deg)}80%{transform:rotate(-10deg)}84%{transform:rotate(7deg)}88%{transform:rotate(-4deg)}}.header-message-slot .oa-notification-bell i[hidden]{display:none!important}.header-message-slot .oa-notification-bell i:not([hidden]){position:absolute!important;z-index:3!important;top:0!important;right:-2px!important;display:flex!important;align-items:center!important;justify-content:center!important;min-width:17px!important;height:17px!important;margin:0!important;padding:0 3px!important;border:2px solid #fff!important;border-radius:10px!important;color:#fff!important;background:#c8453e!important;font-size:10px!important;font-weight:800!important;font-style:normal!important;line-height:1!important;pointer-events:none!important}.oa-notification-modal{position:fixed;z-index:10050;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(26,39,32,.48)}.oa-notification-modal[hidden]{display:none!important}.oa-notification-dialog{display:flex;width:min(650px,calc(100vw - 32px));max-height:min(720px,calc(100vh - 40px));flex-direction:column;overflow:hidden;border-radius:15px;background:#fff;box-shadow:0 24px 70px rgba(16,37,27,.32)}.oa-notification-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:19px 22px 16px;border-bottom:1px solid #e6eee9}.oa-notification-dialog h2{margin:0;color:#183c2e;font-size:20px}.oa-notification-dialog p{margin:5px 0 0;color:#788980;font-size:12px}.oa-notification-close{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:34px!important;height:34px!important;min-width:34px!important;margin:0!important;padding:0!important;border:0!important;border-radius:50%!important;color:#466056!important;background:#eef4f0!important;font-size:25px!important;font-weight:400!important;line-height:1!important}.oa-notification-tabs{display:flex;align-items:center;gap:8px;padding:12px 18px;border-bottom:1px solid #edf2ef}.oa-notification-tabs button{width:auto!important;min-width:0!important;margin:0!important;padding:7px 11px!important;border:0!important;border-radius:7px!important;color:#64786d!important;background:transparent!important;font-size:13px!important}.oa-notification-tabs button.is-active{color:#fff!important;background:#17634f!important}.oa-notification-tabs [data-read-all]{margin-left:auto!important;color:#17634f!important}.oa-notification-tabs em{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;margin-left:3px;border-radius:9px;color:#fff;background:#c8453e;font-size:10px;font-style:normal}.oa-notification-list{max-height:none;min-height:220px;overflow:auto}.oa-notification-item{padding:14px 22px!important}.oa-notification-item span{white-space:normal}.oa-notification-item.is-unread{box-shadow:inset 3px 0 0 #1c8668}.oa-notification-empty{padding:50px 16px}@media(max-width:620px){.workspace>header>.header-right-actions{gap:4px}.header-right-actions>.header-message-slot{margin:0}.oa-notification-modal{padding:12px}.oa-notification-dialog{width:100%;max-height:calc(100vh - 24px)}.oa-notification-dialog>header{padding:16px}.oa-notification-tabs{padding:10px 12px;gap:3px}.oa-notification-tabs button{padding:7px 8px!important;font-size:12px!important}.oa-notification-tabs [data-read-all]{font-size:0!important}.oa-notification-tabs [data-read-all]:after{content:'全部已读';font-size:12px}.oa-notification-item{padding:13px 16px!important}}

/* v0.16.252: stronger unread-message signal without widening the header toolbar. */
.header-message-slot .oa-notification-bell.has-unread{color:#d13f35!important;filter:drop-shadow(0 2px 5px rgba(209,63,53,.34))}.header-message-slot .oa-notification-bell.has-unread:before{content:'';position:absolute;z-index:-1;left:50%;top:50%;width:29px;height:29px;border:2px solid rgba(209,63,53,.62);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;animation:oa-notification-ping 1.45s ease-out infinite}.header-message-slot .oa-notification-bell.has-unread svg{width:27px!important;height:27px!important;min-width:27px!important;stroke-width:2.15!important;animation:oa-notification-ring-strong 1.65s ease-in-out infinite!important;transform-origin:50% 12%}.header-message-slot .oa-notification-bell.is-alerting svg{animation:oa-notification-alert 0.58s ease-in-out 4!important}.header-message-slot .oa-notification-bell i:not([hidden]){top:-4px!important;right:-7px!important;min-width:21px!important;height:21px!important;padding:0 4px!important;border-width:2px!important;border-radius:12px!important;background:#e03831!important;box-shadow:0 2px 7px rgba(174,34,29,.42)!important;font-size:11px!important}.oa-notification-item.is-unread{background:#fff4f2!important;box-shadow:inset 4px 0 0 #df443a!important}.oa-notification-item.is-unread b{color:#a92f28!important}@keyframes oa-notification-ping{0%{opacity:.9;transform:translate(-50%,-50%) scale(.78)}72%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.48)}}@keyframes oa-notification-ring-strong{0%,58%,100%{transform:rotate(0)}64%{transform:rotate(17deg)}70%{transform:rotate(-15deg)}76%{transform:rotate(11deg)}82%{transform:rotate(-7deg)}88%{transform:rotate(3deg)}}@keyframes oa-notification-alert{0%,100%{transform:rotate(0) scale(1)}20%{transform:rotate(20deg) scale(1.12)}40%{transform:rotate(-18deg) scale(1.12)}60%{transform:rotate(13deg) scale(1.08)}80%{transform:rotate(-8deg) scale(1.04)}}@media(prefers-reduced-motion:reduce){.header-message-slot .oa-notification-bell.has-unread:before,.header-message-slot .oa-notification-bell.has-unread svg,.header-message-slot .oa-notification-bell.is-alerting svg{animation:none!important}}
.oa-notification-item.is-rejected{box-shadow:inset 4px 0 0 #c8453e!important}.oa-notification-item.is-rejected b{color:#a92f28!important}

/* v0.16.253: keep the unread halo above the header background and make it unmistakable. */
.header-message-slot .oa-notification-bell.has-unread{border-radius:50%!important;background:#fff0ed!important;box-shadow:0 0 0 2px rgba(218,60,50,.18),0 4px 12px rgba(190,43,34,.24)!important}.header-message-slot .oa-notification-bell.has-unread:before{z-index:0!important;width:34px;height:34px;border-width:3px;background:rgba(255,224,219,.35)}.header-message-slot .oa-notification-bell.has-unread svg{position:relative;z-index:1}.header-message-slot .oa-notification-bell.has-unread:hover,.header-message-slot .oa-notification-bell.has-unread:focus-visible{color:#b92f27!important;background:#ffe4df!important;box-shadow:0 0 0 3px rgba(218,60,50,.2),0 5px 14px rgba(190,43,34,.3)!important}

/* v0.16.233 compact filters and summaries shared by all list tables */
.oa-column-filter-table thead th.expense-filterable-header{position:relative;padding-right:25px!important}
.expense-column-filter-button{position:absolute;top:50%;right:5px;display:inline-flex;width:20px;height:20px;min-width:0!important;min-height:0!important;margin:0!important;padding:3px!important;align-items:center;justify-content:center;transform:translateY(-50%);border:1px solid #c7d5cf!important;border-radius:5px!important;color:#6f827b;background:#fff!important;box-shadow:none!important;cursor:pointer}
.expense-column-filter-button:hover,.expense-column-filter-button:focus-visible{color:#116b55;border-color:#79a997!important;background:#edf7f3!important;outline:none}
.expense-column-filter-button.is-active{color:#fff;border-color:#116b55!important;background:#116b55!important}
.expense-column-filter-button svg{display:block;width:13px;height:13px;fill:currentColor}
.expense-column-filter-popover{position:fixed;z-index:100500;box-sizing:border-box;min-width:220px;max-width:min(420px,calc(100vw - 24px));padding:0;border:1px solid #ccd9d4;border-radius:8px;background:#fff;box-shadow:0 10px 25px rgba(24,52,43,.18);overflow:hidden}
.expense-column-filter-title{padding:9px 12px;border-bottom:1px solid #e8efec;color:#75847e;background:#fafcfb;font-size:12px;white-space:normal;overflow-wrap:anywhere}
.expense-column-filter-options{max-height:330px;overflow:auto;padding:5px 0}
.expense-column-filter-option{display:grid!important;width:100%!important;min-width:0!important;min-height:34px!important;margin:0!important;padding:6px 12px!important;grid-template-columns:18px minmax(0,1fr) auto;gap:8px;align-items:center;border:0!important;border-radius:0!important;color:#263b34!important;background:#fff!important;box-shadow:none!important;text-align:left!important;font-size:13px!important}
.expense-column-filter-option:hover{background:#f2f8f5!important}.expense-column-filter-option.is-selected{color:#116b55!important;background:#edf7f3!important;font-weight:800}
.expense-column-filter-option-name{min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.4}.expense-column-filter-check{display:inline-flex;width:16px;height:16px;align-items:center;justify-content:center;border:1px solid #b9cbc4;border-radius:4px;color:#fff;background:#fff;font-size:11px;font-weight:900;line-height:1}.expense-column-filter-option.is-selected .expense-column-filter-check{border-color:#116b55;background:#116b55}.expense-column-filter-option b{color:#94a39d;font-size:11px;font-weight:500;white-space:nowrap}.expense-column-filter-option.is-all{color:#116b55!important;font-weight:800}
.expense-column-filter-empty{margin:12px;color:#75857f;font-size:12px;text-align:center}
.expense-column-filter-clear-all{display:block!important;width:100%!important;min-width:0!important;min-height:37px!important;margin:0!important;padding:7px 12px!important;border:0!important;border-top:1px solid #e8efec!important;border-radius:0!important;color:#bb463f!important;background:#fff!important;box-shadow:none!important;text-align:left!important;font-size:12px!important}.expense-column-filter-clear-all:hover{background:#fff5f4!important}
.oa-column-filter-table tfoot .expense-list-summary-row td{position:sticky;bottom:0;z-index:2;padding:10px!important;border-top:2px solid #16845f!important;color:#536860;background:#f2f8f5!important;font-weight:600;white-space:nowrap;text-align:left!important}
.expense-list-summary-row td>*{margin-right:17px}.expense-list-summary-row td>strong{color:#183d31;font-size:15px}.expense-list-summary-row td>b{color:#16845f;font-size:14px}.expense-summary-status.is-paid{color:#5a7168}.expense-summary-status.is-rejected{color:#a8564f}.expense-summary-status.is-pending{color:#b17618}.expense-summary-status.is-transfer,.expense-summary-status.is-confirmation{color:#6b766f}
@media(max-width:900px){.expense-column-filter-popover{max-width:calc(100vw - 24px)}.oa-column-filter-table tfoot{display:none}}

/* Keep the notification window stable while switching between unread, rejected and all messages. */
.oa-notification-dialog{height:min(650px,calc(100vh - 40px))!important;max-height:min(650px,calc(100vh - 40px))!important}
.oa-notification-list{height:0!important;min-height:0!important;flex:1 1 auto!important;overflow:auto!important}
@media(max-width:620px){.oa-notification-dialog{height:calc(100vh - 24px)!important;max-height:calc(100vh - 24px)!important}}

/* v0.16.293: expense duplicate review and reliable modal submission. */
.expense-submit-feedback{grid-column:1/-1;padding:10px 12px;border:1px solid #cce9d9;border-radius:9px;color:#126047;background:#e9f8f0;font-size:13px}
.expense-submit-feedback.is-error{border-color:#f0c8c4;color:#9a2b25;background:#fff0ee}
.expense-duplicate-confirm-dialog{width:min(680px,calc(100vw - 32px));max-width:680px}
.expense-duplicate-confirm-dialog .oa-modal-head>div p{margin:3px 0 0;color:var(--muted);font-size:12px}
.expense-duplicate-match-list{display:grid;gap:10px}
.expense-duplicate-match-list article{padding:13px 14px;border:1px solid #e1e7e3;border-radius:10px;background:#f8faf8}
.expense-duplicate-match-list article>div{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:5px}
.expense-duplicate-match-list article>div strong{color:#42524b}
.expense-duplicate-match-list article>div span{color:#a3433d;font-size:17px;font-weight:800}
.expense-duplicate-match-list article>b{display:block;margin-bottom:4px;color:#182920}
.expense-duplicate-match-list article>p{margin:0;color:#718078;font-size:12px}
.expense-duplicate-confirm-note{margin:14px 0 0!important;padding:10px 12px;border-radius:8px;color:#7b5d18!important;background:#fff8df;font-size:13px!important}
.expense-duplicate-confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
.expense-duplicate-confirm-actions button{width:auto;margin:0;padding:10px 16px}
.expense-duplicate-confirm-actions .expense-duplicate-cancel{color:#42524b;background:#edf1ee}
@media(max-width:620px){.expense-duplicate-confirm-actions{display:grid;grid-template-columns:1fr 1fr}.expense-duplicate-confirm-actions button{width:100%}}

/* v0.16.329: lock linked after-sales and show their refund payment history. */
.after-sale-payment-lock{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:11px 14px;border:1px solid #efd495;border-radius:10px;color:#705314;background:#fff8df}
.after-sale-payment-lock b{flex:0 0 auto;padding:3px 8px;border-radius:999px;color:#fff;background:#b98212;font-size:12px}
.after-sale-payment-lock span{min-width:0;font-size:13px}
.after-sale-payment-panel td:nth-child(2) b,.after-sale-payment-panel td:nth-child(2) small{display:block}
.after-sale-payment-panel td:nth-child(2) small{margin-top:3px;color:var(--muted)}
.after-sale-payment-panel tbody tr[data-detail-url]{cursor:pointer}
.after-sale-payment-panel tbody tr[data-detail-url]:hover{background:#eef7f2}
.after-sale-payment-panel .table-wrap{width:100%;max-width:100%;overflow-x:hidden}
.after-sale-payment-table{width:100%;table-layout:fixed;white-space:normal}
.after-sale-payment-table .after-sale-payment-date-col{width:112px}
.after-sale-payment-table .after-sale-payment-record-col{width:46%}
.after-sale-payment-table th,.after-sale-payment-table td{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.after-sale-payment-table th:first-child,.after-sale-payment-table td:first-child{white-space:nowrap}
.after-sale-payment-table td:nth-child(2) b{white-space:normal}

/* v0.16.330: refund after-sale multi-select, matching the employee picker interaction. */
.expense-refund-after-sales-field{display:block;grid-column:1/-1!important;position:relative;min-width:0;overflow:visible!important;color:var(--text)}
.expense-after-sale-caption{display:block;font-weight:600;line-height:20px}
.expense-after-sale-picker{position:relative;width:100%;min-width:0;margin-top:6px}
.expense-after-sale-picker.is-open{z-index:16020}
.expense-after-sale-native{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;opacity:0!important;pointer-events:none!important}
.expense-after-sale-display{display:flex!important;width:100%!important;height:46px!important;min-height:46px!important;align-items:center;gap:8px;margin:0!important;padding:6px 11px!important;border:1px solid #d6e1db!important;border-radius:8px!important;color:#33483e!important;background:#fff!important;text-align:left!important}
.expense-after-sale-display>i{flex:0 0 auto;margin-left:auto;color:#77877f;font-style:normal;transition:transform .16s}
.expense-after-sale-picker.is-open .expense-after-sale-display>i{transform:rotate(180deg)}
.expense-after-sale-display.is-invalid{border-color:#bd4d46!important;box-shadow:0 0 0 2px rgba(189,77,70,.12)}
.expense-after-sale-chips{display:flex;flex:1 1 auto;min-width:0;align-items:center;gap:6px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;white-space:nowrap}
.expense-after-sale-placeholder{color:var(--muted)}
.expense-after-sale-chip{display:inline-flex;flex:0 0 auto;max-width:360px;padding:4px 8px;border-radius:6px;overflow:hidden;color:#246b55;background:#eaf4ef;font-size:12px;font-weight:700;line-height:20px;text-overflow:ellipsis;white-space:nowrap}
.expense-after-sale-menu{position:absolute;z-index:16030;top:calc(100% + 6px);right:0;left:0;max-height:310px;padding:8px;border:1px solid #d5e1da;border-radius:10px;overflow:auto;background:#fff;box-shadow:0 14px 36px rgba(30,62,48,.18)}
.expense-after-sale-menu[hidden]{display:none!important}
.expense-after-sale-search{width:100%!important;height:38px!important;min-height:38px!important;margin:0 0 7px!important;padding:7px 10px!important}
.expense-after-sale-choice{display:grid!important;grid-template-columns:18px minmax(0,1fr);width:100%!important;min-height:39px!important;align-items:center;gap:8px;margin:0!important;padding:7px 9px!important;border:0!important;border-radius:7px!important;color:#30453b!important;background:#fff!important;font-weight:500!important;cursor:pointer}
.expense-after-sale-choice:hover{background:#eef7f2!important}
.expense-after-sale-choice.is-selected{color:#17664d!important;background:#e7f4ed!important}
.expense-after-sale-choice>input{position:absolute;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.expense-after-sale-check{display:grid;width:18px;height:18px;place-items:center;border:1px solid #b9cac1;border-radius:5px;color:transparent;font-size:12px}
.expense-after-sale-choice.is-selected .expense-after-sale-check{border-color:#238160;color:#fff;background:#238160}
.expense-after-sale-choice>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.expense-after-sale-empty{margin:8px;padding:8px;color:var(--muted);text-align:center}
@media(max-width:700px){.expense-after-sale-chip{max-width:280px}.expense-after-sale-menu{right:auto;width:min(520px,calc(100vw - 44px))}}

/* v0.16.351: one-field-per-row expense creation and stable expense cards on phones. */
@media(max-width:900px){
  html body #expense-create-form :is(.expense-primary-row,.expense-linked-row,.expense-transaction-row,.expense-transaction-row.has-sales-order,.expense-refund-row,.expense-recipient-row,.expense-attachment-row){
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:11px!important;
    width:100%!important;
    min-width:0!important;
  }
  html body #expense-create-form :is(.expense-primary-row,.expense-linked-row,.expense-transaction-row,.expense-refund-row,.expense-recipient-row,.expense-attachment-row)>*{
    grid-column:1/-1!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
  }
  html body #expense-create-form :is(input,select,textarea,.project-combobox,.relation-search-combobox,.expense-after-sale-picker,.expense-create-upload-line){
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
  html body #expense-create-form .expense-create-submit{
    grid-column:1/-1!important;
    width:100%!important;
    margin-top:3px!important;
  }
}

@media(max-width:900px){
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="expenses"]>tbody>tr{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:0!important;
    width:100%!important;
    min-width:0!important;
    padding:8px 12px!important;
    overflow:hidden!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="expenses"]>tbody>tr>td{
    display:none!important;
    position:static!important;
    grid-column:1!important;
    grid-row:auto!important;
    order:initial!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:8px 0!important;
    overflow:hidden!important;
    border:0!important;
    border-top:1px dashed #e5ebe7!important;
    color:#34483e!important;
    background:transparent!important;
    font-size:13px!important;
    font-weight:500!important;
    line-height:1.45!important;
    text-align:left!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="expenses"]>tbody>tr>td:is([data-label="项目"],[data-label="状态"],[data-label="审核"],[data-label="日期"],[data-label="日期时间"],[data-label="开票"],[data-label="开票状态"],[data-label="发票状态"],[data-label="支出账号"],[data-label="金额"],[data-label="款项说明"]){
    display:grid!important;
    grid-template-columns:76px minmax(0,1fr)!important;
    align-items:center!important;
    column-gap:9px!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="expenses"]>tbody>tr>td:first-of-type{
    border-top:0!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="expenses"]>tbody>tr>td::before{
    display:block!important;
    position:static!important;
    width:auto!important;
    margin:0!important;
    color:#78877f!important;
    background:transparent!important;
    font-size:11px!important;
    font-weight:650!important;
    line-height:1.4!important;
    text-align:left!important;
    content:attr(data-label)!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="expenses"]>tbody>tr>td:is([data-label="日期"],[data-label="日期时间"]){
    font-size:13px!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="expenses"]>tbody>tr>td:is([data-label="日期"],[data-label="日期时间"])::after{
    display:none!important;
    content:none!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="expenses"]>tbody>tr>td[data-label="金额"]{
    color:#a0443c!important;
    font-weight:800!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="expenses"]>tbody>tr>td[data-label="款项说明"]{
    align-items:start!important;
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="expenses"]>tbody>tr>td[colspan]{
    display:block!important;
    grid-column:1!important;
    padding:20px 0!important;
    border-top:0!important;
    text-align:center!important;
  }
}

/* v0.16.353: customer mobile header is always search/create first, type tabs second. */
@media (max-width:900px){
  html body .app-shell .workspace>main .customer-list-panel.catalog-aligned-customer-filters{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    width:100%!important;
  }
  html body .app-shell .workspace>main .customer-list-panel.catalog-aligned-customer-filters>.customer-list-toolbar{
    display:grid!important;
    order:1!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-rows:auto!important;
    align-items:center!important;
    gap:8px!important;
    width:100%!important;
    min-width:0!important;
    margin:0 0 10px!important;
  }
  html body .app-shell .workspace>main .customer-list-panel.catalog-aligned-customer-filters>.customer-list-toolbar>.media-device-list-search,
  html body .app-shell .workspace>main .customer-list-panel.catalog-aligned-customer-filters>.customer-list-toolbar>input[type="search"]{
    grid-column:1!important;
    grid-row:1!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
  }
  html body .app-shell .workspace>main .customer-list-panel.catalog-aligned-customer-filters>.customer-list-toolbar>:is(.oa-open-modal,.permission-denied-create){
    grid-column:2!important;
    grid-row:1!important;
    width:auto!important;
    min-width:64px!important;
    max-width:96px!important;
    margin:0!important;
    padding-right:12px!important;
    padding-left:12px!important;
    justify-self:end!important;
    white-space:nowrap!important;
  }
  html body .app-shell .workspace>main .customer-list-panel.catalog-aligned-customer-filters>.customer-type-list-tabs{
    display:grid!important;
    order:2!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    grid-column:auto!important;
    grid-row:auto!important;
    gap:5px!important;
    width:100%!important;
    min-width:0!important;
    margin:0 0 10px!important;
    padding:4px!important;
    overflow:visible!important;
  }
  html body .app-shell .workspace>main .customer-list-panel.catalog-aligned-customer-filters>.customer-type-list-tabs>.detail-tab{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:8px 3px!important;
    overflow:hidden!important;
    font-size:12px!important;
    text-align:center!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  html body .app-shell .workspace>main .customer-list-panel.catalog-aligned-customer-filters>:not(.customer-list-toolbar):not(.customer-type-list-tabs){
    order:3!important;
  }
}

/* v0.16.354: fixed mobile order for the sales-order search, filters, total and tabs. */
@media (max-width:900px){
  html body .app-shell .workspace>main .sales-order-list-panel>.sales-order-list-toolbar{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-rows:auto auto auto auto!important;
    align-items:stretch!important;
    gap:9px!important;
    width:100%!important;
    min-width:0!important;
    margin:0 0 10px!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel>.sales-order-list-toolbar>.media-device-list-search,
  html body .app-shell .workspace>main .sales-order-list-panel>.sales-order-list-toolbar>input[type="search"]{
    grid-column:1!important;
    grid-row:1!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel>.sales-order-list-toolbar>:is(.oa-open-modal,.permission-denied-create){
    grid-column:2!important;
    grid-row:1!important;
    width:auto!important;
    min-width:64px!important;
    max-width:104px!important;
    margin:0!important;
    padding-right:12px!important;
    padding-left:12px!important;
    justify-self:end!important;
    white-space:nowrap!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel>.sales-order-list-toolbar>.sales-order-list-filters{
    display:block!important;
    grid-column:1/-1!important;
    grid-row:2!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel>.sales-order-list-toolbar>.sales-order-list-filters>.expense-date-range-trigger{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel>.sales-order-list-toolbar>.sales-order-filter-total{
    display:flex!important;
    grid-column:1/-1!important;
    grid-row:3!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:8px!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:9px 12px!important;
    box-sizing:border-box!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel>.sales-order-list-toolbar>.sales-order-filter-total>span{
    display:inline!important;
    flex:0 0 auto!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel>.sales-order-list-toolbar>.sales-order-filter-total>b{
    min-width:0!important;
    overflow:hidden!important;
    font-size:15px!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel>.sales-order-list-toolbar>.sales-order-filter-total>i{
    margin-left:auto!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel>.sales-order-list-toolbar>.sales-order-company-tabs{
    display:flex!important;
    grid-column:1/-1!important;
    grid-row:4!important;
    gap:5px!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:4px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    box-sizing:border-box!important;
    scrollbar-width:thin!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel>.sales-order-list-toolbar>.sales-order-company-tabs>.sales-order-company-tab{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:max-content!important;
    height:34px!important;
    min-height:34px!important;
    margin:0!important;
  }
}

/* v0.16.355: sales-order mobile cards use three information rows and one two-button row. */
@media (max-width:900px){
  html body .app-shell .workspace>main .sales-order-list-panel .table-wrap>table.oa-mobile-card-table[data-mobile-module="supply-sales"]>tbody>tr{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    grid-template-rows:auto auto auto auto!important;
    gap:0 12px!important;
    width:100%!important;
    min-width:0!important;
    padding:12px!important;
    overflow:hidden!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel .table-wrap>table.oa-mobile-card-table[data-mobile-module="supply-sales"]>tbody>tr>td{
    display:none!important;
    position:static!important;
    order:initial!important;
    width:auto!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:8px 0!important;
    overflow:hidden!important;
    border:0!important;
    background:transparent!important;
    color:#33473d!important;
    font-size:13px!important;
    line-height:1.4!important;
    text-align:left!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel .table-wrap>table.oa-mobile-card-table[data-mobile-module="supply-sales"]>tbody>tr>td[data-label="订单号"]{
    display:block!important;
    grid-column:1!important;
    grid-row:1!important;
    padding-top:1px!important;
    color:#213a30!important;
    font-size:15px!important;
    font-weight:800!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel .table-wrap>table.oa-mobile-card-table[data-mobile-module="supply-sales"]>tbody>tr>td[data-label="售后状态"]{
    display:flex!important;
    grid-column:2!important;
    grid-row:1!important;
    align-items:flex-start!important;
    justify-content:flex-end!important;
    padding-top:0!important;
    overflow:visible!important;
    text-align:right!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel .table-wrap>table.oa-mobile-card-table[data-mobile-module="supply-sales"]>tbody>tr>td:is([data-label="购货方"],[data-label="客户"]){
    display:grid!important;
    grid-column:1!important;
    grid-row:2!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    align-items:center!important;
    gap:6px!important;
    border-top:1px dashed #e2e9e5!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel .table-wrap>table.oa-mobile-card-table[data-mobile-module="supply-sales"]>tbody>tr>td[data-label="收件省份"]{
    display:grid!important;
    grid-column:2!important;
    grid-row:2!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    align-items:center!important;
    justify-content:end!important;
    gap:6px!important;
    border-top:1px dashed #e2e9e5!important;
    text-align:right!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel .table-wrap>table.oa-mobile-card-table[data-mobile-module="supply-sales"]>tbody>tr>td[data-label="数量"]{
    display:grid!important;
    grid-column:1!important;
    grid-row:3!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    align-items:center!important;
    gap:6px!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel .table-wrap>table.oa-mobile-card-table[data-mobile-module="supply-sales"]>tbody>tr>td[data-label="金额"]{
    display:grid!important;
    grid-column:2!important;
    grid-row:3!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    align-items:center!important;
    justify-content:end!important;
    gap:6px!important;
    color:#17634f!important;
    font-size:14px!important;
    font-weight:800!important;
    text-align:right!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel .table-wrap>table.oa-mobile-card-table[data-mobile-module="supply-sales"]>tbody>tr>td:is([data-label="购货方"],[data-label="客户"],[data-label="收件省份"],[data-label="数量"],[data-label="金额"])::before{
    display:inline!important;
    position:static!important;
    width:auto!important;
    min-width:0!important;
    margin:0!important;
    color:#7a8a81!important;
    background:transparent!important;
    font-size:11px!important;
    font-weight:650!important;
    line-height:1.4!important;
    content:attr(data-label) "："!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel .table-wrap>table.oa-mobile-card-table[data-mobile-module="supply-sales"]>tbody>tr>td:is([data-label="订单号"],[data-label="售后状态"])::before{
    display:none!important;
    content:none!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel .table-wrap>table.oa-mobile-card-table[data-mobile-module="supply-sales"]>tbody>tr>td:is([data-label="操作"],[data-label="打印发货单"]){
    display:block!important;
    grid-column:1/-1!important;
    grid-row:4!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    padding:10px 0 0!important;
    overflow:visible!important;
    border-top:1px solid #e3eae6!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel .table-wrap>table.oa-mobile-card-table[data-mobile-module="supply-sales"]>tbody>tr>td:is([data-label="操作"],[data-label="打印发货单"])::before{
    display:none!important;
    content:none!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel .table-wrap>table.oa-mobile-card-table[data-mobile-module="supply-sales"] .sales-order-row-actions{
    display:flex!important;
    align-items:stretch!important;
    gap:8px!important;
    width:100%!important;
    min-width:0!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel .table-wrap>table.oa-mobile-card-table[data-mobile-module="supply-sales"] .sales-order-row-actions>a[href*="action=supply-sales-print"],
  html body .app-shell .workspace>main .sales-order-list-panel .table-wrap>table.oa-mobile-card-table[data-mobile-module="supply-sales"] .sales-order-row-actions>.sales-ship-button{
    display:inline-flex!important;
    flex:1 1 0!important;
    align-items:center!important;
    justify-content:center!important;
    width:0!important;
    min-width:0!important;
    max-width:none!important;
    min-height:38px!important;
    margin:0!important;
    padding:8px 6px!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
    text-align:center!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  html body .app-shell .workspace>main .sales-order-list-panel .table-wrap>table.oa-mobile-card-table[data-mobile-module="supply-sales"]>tbody>tr>td[colspan]{
    display:block!important;
    grid-column:1/-1!important;
    grid-row:auto!important;
    padding:20px 0!important;
    border-top:0!important;
    text-align:center!important;
  }
}

/* v0.16.356: receivable mobile cards use four exact two-column rows. */
@media (max-width:900px){
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-rows:auto auto auto auto!important;
    gap:0 12px!important;
    width:100%!important;
    min-width:0!important;
    padding:12px!important;
    overflow:hidden!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td{
    display:none!important;
    position:static!important;
    order:initial!important;
    width:auto!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:8px 0!important;
    overflow:hidden!important;
    border:0!important;
    background:transparent!important;
    color:#33473d!important;
    font-size:13px!important;
    line-height:1.4!important;
    text-align:left!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="客户"]{
    display:block!important;
    grid-column:1!important;
    grid-row:1!important;
    padding-top:1px!important;
    overflow:hidden!important;
    color:#213a30!important;
    font-size:15px!important;
    font-weight:800!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="状态"]{
    display:flex!important;
    grid-column:2!important;
    grid-row:1!important;
    align-items:flex-start!important;
    justify-content:flex-end!important;
    width:max-content!important;
    min-width:max-content!important;
    max-width:none!important;
    padding-top:0!important;
    overflow:visible!important;
    text-align:right!important;
    white-space:nowrap!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="状态"]>.tag{
    width:max-content!important;
    min-width:max-content!important;
    max-width:none!important;
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:nowrap!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="销售订单"]{
    display:grid!important;
    grid-column:1!important;
    grid-row:2!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="订单日期"]{
    display:grid!important;
    grid-column:2!important;
    grid-row:2!important;
    text-align:right!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="应收编号"]{
    display:grid!important;
    grid-column:1!important;
    grid-row:3!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="应收金额"]{
    display:grid!important;
    grid-column:2!important;
    grid-row:3!important;
    color:#31473c!important;
    font-weight:800!important;
    text-align:right!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="已收金额"]{
    display:grid!important;
    grid-column:1!important;
    grid-row:4!important;
    color:#17745b!important;
    font-weight:800!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[data-label="未收金额"]{
    display:grid!important;
    grid-column:2!important;
    grid-row:4!important;
    color:#b14a3f!important;
    font-weight:800!important;
    text-align:right!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td:is([data-label="销售订单"],[data-label="订单日期"],[data-label="应收编号"],[data-label="应收金额"],[data-label="已收金额"],[data-label="未收金额"]){
    grid-template-columns:auto minmax(0,1fr)!important;
    align-items:center!important;
    gap:5px!important;
    border-top:1px dashed #e2e9e5!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td:is([data-label="订单日期"],[data-label="应收金额"],[data-label="未收金额"]){
    justify-content:end!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td:is([data-label="销售订单"],[data-label="订单日期"],[data-label="应收编号"],[data-label="应收金额"],[data-label="已收金额"],[data-label="未收金额"])::before{
    display:inline!important;
    position:static!important;
    width:auto!important;
    min-width:0!important;
    margin:0!important;
    color:#7a8a81!important;
    background:transparent!important;
    font-size:10px!important;
    font-weight:650!important;
    line-height:1.4!important;
    text-align:inherit!important;
    content:attr(data-label) "："!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td:is([data-label="客户"],[data-label="状态"])::before{
    display:none!important;
    content:none!important;
  }
  html body .app-shell .workspace>main .table-wrap>table.oa-mobile-card-table[data-mobile-module="receivables"]>tbody>tr>td[colspan]{
    display:block!important;
    grid-column:1/-1!important;
    grid-row:auto!important;
    padding:20px 0!important;
    border-top:0!important;
    text-align:center!important;
  }
}
