:root{
  --bg:#f4f7fb;--card:#fff;--text:#1f2937;--muted:#6b7280;--line:#e5e7eb;
  --primary:#176b52;--primary2:#0f513d;--soft:#eaf7f1;--danger:#c0392b;
  --warning:#b7791f;--shadow:0 12px 35px rgba(28,45,68,.08);--radius:16px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.45}
body.nav-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{-webkit-tap-highlight-color:transparent}
.app-shell{min-height:100vh;display:flex}
.sidebar{width:250px;background:#102a24;color:#e8f5f0;position:fixed;inset:0 auto 0 0;padding:24px 16px;display:flex;flex-direction:column;z-index:50;overflow-y:auto;overscroll-behavior:contain}
.sidebar-head{display:flex;align-items:center;gap:8px}
.sidebar-close{display:none;margin-left:auto;width:42px;height:42px;border:0;border-radius:12px;background:rgba(255,255,255,.1);color:#fff;font-size:24px;line-height:1;cursor:pointer}
.brand{display:flex;align-items:center;gap:12px;padding:0 8px 26px;min-width:0}
.brand-mark{flex:0 0 auto;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#34b27b,#16715a);color:#fff;font-weight:800;box-shadow:0 8px 22px rgba(0,0,0,.18)}
.brand strong,.brand small{display:block}.brand strong{white-space:nowrap}.brand small{opacity:.68;margin-top:2px}
.sidebar nav{display:grid;gap:6px}
.sidebar nav a{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:11px;color:#cbe0d8;min-height:46px}
.sidebar nav a span{width:22px;text-align:center;font-size:17px;flex:0 0 auto}
.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.11);color:#fff}
.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding-top:18px}
.user-chip{display:flex;align-items:center;gap:10px;min-width:0}
.user-chip>span{flex:0 0 auto;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#f1c36a;color:#4c3410;font-weight:800}
.user-chip div{min-width:0}.user-chip b,.user-chip small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-chip small{opacity:.65}
.logout-link{display:block;margin-top:14px;padding:8px 0;color:#f7b5ae}
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(8,23,19,.5);backdrop-filter:blur(2px);z-index:45}
.main-content{margin-left:250px;width:calc(100% - 250px);min-width:0}
.topbar{min-height:82px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:12px 30px;gap:14px;position:sticky;top:0;z-index:30}
.topbar-title{min-width:0}.topbar h1{font-size:21px;line-height:1.25;margin:0;overflow-wrap:anywhere}.topbar p{margin:3px 0 0;color:var(--muted);font-size:12px}
.menu-button{display:none;flex:0 0 auto;width:44px;height:44px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:23px;cursor:pointer}
.page-content{padding:28px;max-width:1600px;margin:auto;min-width:0}
.grid{display:grid;gap:18px}.grid.cards{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.two{grid-template-columns:1fr 1fr}
.card{min-width:0;background:var(--card);border:1px solid #edf0f3;border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}
.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;min-width:0}.card-header h2,.card h2{font-size:17px;line-height:1.35;margin:0}
.metric{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.metric>div:first-child{min-width:0}.metric .label{color:var(--muted);font-size:13px}.metric .value{font-weight:800;font-size:clamp(20px,2vw,24px);line-height:1.25;margin-top:8px;overflow-wrap:anywhere}.metric .icon{flex:0 0 auto;width:42px;height:42px;border-radius:13px;background:var(--soft);display:grid;place-items:center;font-size:20px;color:var(--primary)}
.muted{color:var(--muted)}.small{font-size:12px}
.btn{min-height:42px;border:0;border-radius:10px;padding:10px 14px;cursor:pointer;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-align:center;line-height:1.2;touch-action:manipulation}
.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary2)}.btn-soft{background:var(--soft);color:var(--primary)}.btn-danger{background:#fdeceb;color:var(--danger)}.btn-outline{background:#fff;border:1px solid var(--line)}.btn-sm{min-height:36px;padding:7px 10px;font-size:12px}.btn-block{width:100%}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.form-grid{display:grid;gap:14px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
label{display:grid;gap:7px;font-weight:650;font-size:13px;min-width:0}
input,select,textarea{width:100%;min-width:0;min-height:42px;border:1px solid #d9dee6;border-radius:10px;padding:10px 12px;background:#fff;color:var(--text);outline:none}
input:focus,select:focus,textarea:focus{border-color:#47a986;box-shadow:0 0 0 3px rgba(71,169,134,.12)}
textarea{min-height:84px;resize:vertical}.stack-form{display:grid;gap:14px}.check-row{display:flex;align-items:flex-start;gap:8px;font-weight:500}.check-row input{width:auto;min-height:0;margin-top:3px}
.table-wrap{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:12px;background:#fff}
.table-wrap::after{content:"";display:block;height:0}
table{width:100%;border-collapse:collapse;min-width:720px}th,td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{background:#f7f9fb;color:#4b5563;font-size:12px;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}tr:last-child td{border-bottom:0}.text-right{text-align:right}.text-center{text-align:center}
.badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#eef2f7;font-size:12px;font-weight:650;line-height:1.2}.badge.green{background:#e8f7ef;color:#176b52}.badge.orange{background:#fff3df;color:#9a6115}
.summary-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;background:#f8fbfa;border:1px solid #dceee7;border-radius:13px;padding:14px}.summary-item{min-width:0}.summary-item small,.summary-item strong{display:block}.summary-item small{color:var(--muted)}.summary-item strong{font-size:18px;line-height:1.3;margin-top:4px;overflow-wrap:anywhere}
.entry-table input{min-width:95px}.entry-table .volume-cell{font-weight:700;color:var(--primary)}
.alert{padding:12px 14px;border-radius:10px;margin-bottom:14px;overflow-wrap:anywhere}.alert-success{background:#e9f8ef;color:#16613e}.alert-danger{background:#fdeceb;color:#a72920}.alert-warning{background:#fff5df;color:#8a5a13}
.empty{padding:34px;text-align:center;color:var(--muted)}.month-filter{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.month-filter label{min-width:180px}.month-filter .btn{flex:0 0 auto}
.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#eef8f4,#f6f8fb)}.auth-card,.setup-card{width:min(100%,430px);background:#fff;border-radius:20px;padding:30px;box-shadow:0 24px 70px rgba(32,52,72,.14)}.setup-card{width:min(100%,760px)}.auth-card>.brand-mark,.setup-card>.brand-mark{margin-bottom:18px}.auth-card h1,.setup-card h1{margin:0 0 8px;font-size:24px}.auth-card hr,.setup-card hr{border:0;border-top:1px solid var(--line);margin:4px 0}
.toast-container{position:fixed;right:20px;bottom:20px;display:grid;gap:10px;z-index:100}.toast{max-width:min(380px,calc(100vw - 32px));background:#16231f;color:#fff;padding:12px 15px;border-radius:11px;box-shadow:var(--shadow);animation:slideIn .2s ease}.toast.error{background:#9f2f28}@keyframes slideIn{from{transform:translateY(8px);opacity:0}}
.pill-input{max-width:78px;text-align:center;padding:7px}.quick-attendance{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.attendance-card{border:1px solid var(--line);border-radius:12px;padding:13px;background:#fff}.attendance-card h3{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px;font-size:15px}.attendance-controls{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.print-only{display:none}.notice{background:#fffbea;border:1px solid #f0df9a;color:#775d0a;padding:12px;border-radius:10px}.formula-box{background:#f7faf9;border:1px solid #dce9e4;border-radius:12px;padding:14px;line-height:1.7;overflow-wrap:anywhere}.section-gap{margin-top:20px}.nowrap{white-space:nowrap}
.view-only-banner{background:#edf6ff;border:1px solid #c9e2fa;color:#245a84;padding:11px 14px;border-radius:11px;margin-bottom:16px;font-weight:650}.inline-form{display:flex;align-items:center;gap:8px}.inline-form input{min-width:140px;padding:7px 9px}.payroll-table table{min-width:1280px}select:disabled,input:disabled{background:#f3f4f6;color:#4b5563;opacity:1;cursor:not-allowed}
.mobile-bottom-nav{display:none}
.mobile-only{display:none!important}

@media(max-width:1100px){
  .grid.cards{grid-template-columns:repeat(2,1fr)}.grid.two{grid-template-columns:1fr}.form-grid.four{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:780px){
  body{font-size:14px}
  .sidebar{width:min(86vw,320px);transform:translateX(-105%);transition:transform .22s ease;padding:16px 14px calc(18px + env(safe-area-inset-bottom));box-shadow:20px 0 60px rgba(0,0,0,.24)}
  .sidebar.open{transform:translateX(0)}.sidebar-overlay.open{display:block}.sidebar-head{margin-bottom:8px}.sidebar-close{display:grid;place-items:center}.brand{padding:0 4px 12px}.sidebar nav a{min-height:48px;padding:12px 13px}
  .main-content{margin-left:0;width:100%}.menu-button{display:grid;place-items:center}.topbar{min-height:66px;padding:9px 12px;gap:10px}.topbar h1{font-size:18px}.topbar p{font-size:11px}
  .page-content{padding:12px 12px calc(92px + env(safe-area-inset-bottom))}.grid{gap:12px}.grid.cards{grid-template-columns:1fr 1fr}.form-grid.two,.form-grid.three,.form-grid.four{grid-template-columns:1fr}.card{padding:14px;border-radius:14px}.card-header{align-items:flex-start;margin-bottom:14px}.card-header.filter-header{flex-direction:column}.card-header .month-filter{width:100%}
  .metric{min-height:112px}.metric .value{font-size:19px}.metric .icon{width:38px;height:38px;font-size:18px}
  input,select,textarea{min-height:46px;font-size:16px}.btn{min-height:44px}.btn-sm{min-height:40px;font-size:13px}.actions>.btn{flex:1 1 140px}.actions>.small{flex-basis:100%;line-height:1.5}
  .summary-bar{grid-template-columns:1fr 1fr;gap:8px;padding:10px}.summary-item{background:#fff;border:1px solid #e4eee9;border-radius:10px;padding:10px}.summary-item strong{font-size:16px}
  .month-filter{width:100%;align-items:stretch;flex-direction:column}.month-filter label{min-width:0;width:100%}.month-filter .btn{width:100%}
  .quick-attendance{grid-template-columns:1fr}.attendance-card{padding:14px}.attendance-controls{gap:10px}
  .auth-page{display:block;padding:18px 12px}.auth-card,.setup-card{margin:4vh auto 0;padding:22px 16px;border-radius:16px}.auth-card h1,.setup-card h1{font-size:22px}
  .toast-container{left:12px;right:12px;bottom:calc(78px + env(safe-area-inset-bottom))}.toast{width:100%;max-width:none}
  .view-only-banner{font-size:13px;padding:10px 12px}.formula-box,.notice{font-size:13px}
  .mobile-bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:40;padding:7px 5px calc(7px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);backdrop-filter:blur(12px);border-top:1px solid var(--line);box-shadow:0 -8px 30px rgba(28,45,68,.09)}
  .mobile-bottom-nav a,.mobile-bottom-nav button{min-width:0;border:0;background:transparent;color:#64706c;display:grid;place-items:center;gap:2px;padding:4px 2px;font-size:10px;line-height:1.15;cursor:pointer}.mobile-bottom-nav .nav-icon{font-size:19px;line-height:1}.mobile-bottom-nav a.active{color:var(--primary);font-weight:750}.mobile-bottom-nav button{font-family:inherit;color:#64706c}
  .mobile-primary-action{position:sticky;bottom:calc(70px + env(safe-area-inset-bottom));z-index:20;width:100%;box-shadow:0 10px 26px rgba(15,81,61,.28)}
  .mobile-only{display:initial!important}
}

@media(max-width:680px){
  .table-wrap.mobile-card-wrap{overflow:visible;border:0;background:transparent;border-radius:0}
  table.mobile-cards{min-width:0;border-collapse:separate;border-spacing:0}
  table.mobile-cards thead{display:none}
  table.mobile-cards tbody{display:grid;gap:10px}
  table.mobile-cards tbody tr{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:5px 12px;box-shadow:0 5px 18px rgba(28,45,68,.05)}
  table.mobile-cards tbody tr.total-row{background:#f2faf6;border-color:#cfe7dc}
  table.mobile-cards tbody tr>td{display:grid;grid-template-columns:minmax(105px,38%) minmax(0,1fr);align-items:start;gap:10px;width:100%;padding:9px 0;border-bottom:1px dashed #e7eaee;text-align:right!important;white-space:normal!important;overflow-wrap:anywhere}
  table.mobile-cards tbody tr>td:last-child{border-bottom:0}
  table.mobile-cards tbody tr>td::before{content:attr(data-label);display:block;color:var(--muted);font-size:11px;font-weight:750;text-align:left;text-transform:uppercase;letter-spacing:.02em}
  table.mobile-cards tbody tr>td[data-label=""]{display:block;text-align:left!important}
  table.mobile-cards tbody tr>td[data-label=""]::before{display:none}
  table.mobile-cards tbody tr>th{display:block;padding:10px 0 6px;background:transparent;border-bottom:1px solid #cfe7dc;font-size:13px;text-align:left}
  table.mobile-cards .nowrap{white-space:normal}.inline-form{display:grid;grid-template-columns:1fr auto;width:100%}.inline-form input{min-width:0}.inline-form .btn{min-width:70px}
  table.mobile-cards td .btn,table.mobile-cards td form .btn{min-height:38px}
  table.mobile-cards td:last-child>.btn,table.mobile-cards td:last-child>form{margin:2px 4px 2px 0}
  .payroll-table table{min-width:0}

  .table-wrap.entry-table-wrap{overflow:visible;border:0;background:transparent}
  table.entry-table{min-width:0;border-collapse:separate;border-spacing:0}
  .entry-table thead{display:none}.entry-table tbody{display:grid;gap:12px}
  .entry-table tbody tr{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:10px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:42px 12px 12px;box-shadow:0 5px 18px rgba(28,45,68,.05)}
  .entry-table tbody td{display:block;padding:0;border:0;text-align:left!important;min-width:0}
  .entry-table tbody td::before{content:attr(data-label);display:block;margin-bottom:5px;color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase}
  .entry-table tbody td:first-child{position:absolute;left:12px;top:12px;font-weight:800;color:var(--primary)}
  .entry-table tbody td:first-child::before{content:"Quy cách";display:inline;margin:0 5px 0 0;color:var(--muted)}
  .entry-table tbody td:nth-child(6){grid-column:1/-1;background:var(--soft);border-radius:10px;padding:10px;text-align:right!important}
  .entry-table tbody td:nth-child(6)::before{display:inline;float:left;margin:2px 8px 0 0}
  .entry-table tbody td:last-child{position:absolute;right:8px;top:8px}
  .entry-table tbody td:last-child::before{display:none}.entry-table .remove-row{width:36px;min-height:34px;padding:5px;font-size:20px}
  .entry-table input{min-width:0;width:100%}
}

@media(max-width:430px){
  .grid.cards{grid-template-columns:1fr}.metric{min-height:0}.attendance-controls{grid-template-columns:1fr}.summary-bar{grid-template-columns:1fr}.card-header{flex-direction:column}.card-header>.btn,.card-header>.badge{align-self:stretch}.card-header>.badge{justify-content:center}.actions{display:grid;grid-template-columns:1fr}.actions>.btn{width:100%}.topbar h1{font-size:17px}
}

@media print{
  .sidebar,.sidebar-overlay,.topbar,.mobile-bottom-nav,.no-print,.toast-container{display:none!important}.main-content{margin:0;width:100%}.page-content{padding:0}.card{box-shadow:none;border:0}.print-only{display:block}body{background:#fff}table,table.mobile-cards,.payroll-table table{min-width:0!important;font-size:11px}table.mobile-cards thead{display:table-header-group}table.mobile-cards tbody{display:table-row-group}table.mobile-cards tbody tr{display:table-row;border:0;box-shadow:none;padding:0}table.mobile-cards tbody tr>td,table.mobile-cards tbody tr>th{display:table-cell;padding:6px;border-bottom:1px solid #ddd;text-align:inherit!important}table.mobile-cards tbody tr>td::before{display:none}
}

/* v1.2.1 - nhập quy cách nhanh như bảng tính */
.entry-row-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.entry-row-tools .btn{flex:0 0 auto}
.entry-row-tools .small{line-height:1.45}
.entry-table .entry-input{font-variant-numeric:tabular-nums}
.entry-table .entry-input::-webkit-outer-spin-button,
.entry-table .entry-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.entry-table .entry-input[type=number]{-moz-appearance:textfield;appearance:textfield}
.entry-table .entry-input:focus{background:#fbfffd}
@media(max-width:780px){
  .entry-row-tools{display:grid;grid-template-columns:1fr;gap:7px}
  .entry-row-tools .btn{width:100%}
}

/* v1.2.2 - căn lại ô ngày/tháng trên Safari iPhone */
input[type="date"],
input[type="month"]{
  display:block;
  text-align:left;
  text-align-last:left;
  font-variant-numeric:tabular-nums;
}
input[type="date"]::-webkit-date-and-time-value,
input[type="month"]::-webkit-date-and-time-value{
  display:block;
  width:100%;
  min-height:1.4em;
  margin:0;
  padding:0;
  text-align:left;
}
input[type="date"]::-webkit-datetime-edit,
input[type="month"]::-webkit-datetime-edit{
  display:flex;
  align-items:center;
  min-height:1.4em;
  padding:0;
}
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="month"]::-webkit-calendar-picker-indicator{
  margin-left:auto;
  flex:0 0 auto;
}

@media(max-width:780px){
  .topbar{align-items:center}
  .topbar-title{display:flex;min-height:48px;flex-direction:column;justify-content:center}
  .topbar-title h1,.topbar-title p{width:100%;text-align:left}
  .topbar-title p{line-height:1.25}

  .month-filter label{display:grid;grid-template-columns:1fr;align-items:stretch;gap:8px;text-align:left}
  .month-filter input[type="date"],
  .month-filter input[type="month"]{
    min-height:52px;
    height:52px;
    padding:0 14px;
    line-height:52px;
    background-color:#fff;
  }
  .month-filter input[type="date"]::-webkit-datetime-edit,
  .month-filter input[type="month"]::-webkit-datetime-edit{
    min-height:50px;
    align-items:center;
  }
}

/* v1.2.3 - lớp hiển thị riêng cho input tháng trên Safari iPhone */
.month-input-shell{
  position:relative;
  display:flex;
  align-items:center;
  width:100%;
  min-height:46px;
  padding:0 46px 0 14px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:var(--text);
  overflow:hidden;
  box-sizing:border-box;
}
.month-input-shell:focus-within{
  border-color:#76b79d;
  box-shadow:0 0 0 3px rgba(24,123,88,.12);
}
.month-input-shell .month-input-text{
  display:block;
  width:100%;
  text-align:left;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:16px;
  font-weight:600;
  line-height:1.2;
  pointer-events:none;
}
.month-input-shell .month-input-icon{
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  color:var(--primary);
  font-size:18px;
  line-height:1;
  pointer-events:none;
}
.month-input-shell input[type="month"]{
  position:absolute!important;
  inset:0;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:inherit;
  opacity:0;
  cursor:pointer;
  -webkit-appearance:none;
  appearance:none;
}
@media(max-width:780px){
  .month-input-shell{height:52px;min-height:52px;border-radius:11px}
}

.attendance-controls-three{grid-template-columns:repeat(3,minmax(0,1fr))}.attendance-rate-note{margin-top:8px;font-size:12px}@media(max-width:700px){.attendance-controls-three{grid-template-columns:1fr 1fr}.attendance-controls-three label:first-child{grid-column:1/-1}}

.attendance-controls-four{grid-template-columns:repeat(4,minmax(0,1fr))}.daily-rate-field.is-hidden{display:none}.daily-rate-field input{width:100%}@media(max-width:700px){.attendance-controls-four{grid-template-columns:1fr 1fr}.daily-rate-field{grid-column:1/-1}}

/* v1.5.3 - giao diện chấm công gọn, dễ thao tác */
.attendance-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #dceee7;border-radius:12px;background:#f6fbf8}
.attendance-help{font-size:12px;line-height:1.45;color:#52605b}
.attendance-bulk-actions{flex-shrink:0}
.quick-attendance{grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:12px}
.attendance-card{padding:14px;border-radius:14px;box-shadow:0 4px 14px rgba(28,45,68,.045)}
.attendance-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.attendance-card-head h3{margin:0;font-size:15px;line-height:1.25;min-width:0;overflow-wrap:anywhere}
.attendance-card .badge{flex-shrink:0;padding:4px 8px;font-size:11px}
.attendance-controls-four{display:grid;grid-template-columns:1.25fr .9fr .75fr;gap:9px;align-items:end}
.attendance-controls-four label{gap:5px;font-size:11px;color:#59645f}
.attendance-controls-four label>span:first-child{white-space:nowrap}
.attendance-controls-four select,.attendance-controls-four input{min-height:40px;padding:8px 9px;font-size:14px;font-weight:650}
.daily-rate-field{grid-column:1/-1;margin-top:1px;padding:10px;border-radius:10px;background:#eef8f3;border:1px solid #d3ebdf}
.daily-rate-field.is-hidden{display:none}
.money-input{display:flex;align-items:center;overflow:hidden;border:1px solid #cddfd7;border-radius:9px;background:#fff}
.money-input:focus-within{border-color:#47a986;box-shadow:0 0 0 3px rgba(71,169,134,.12)}
.money-input input{border:0!important;border-radius:0!important;box-shadow:none!important;min-width:0}
.money-suffix{padding:0 10px;color:#52605b;font-size:12px;font-weight:700;white-space:nowrap;border-left:1px solid #e2ebe7}
@media(min-width:1280px){.quick-attendance{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){.attendance-toolbar{align-items:stretch;flex-direction:column}.attendance-bulk-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.attendance-bulk-actions .btn{width:100%}}
@media(max-width:700px){
  .quick-attendance{grid-template-columns:1fr;gap:10px}
  .attendance-card{padding:12px}
  .attendance-card-head{margin-bottom:10px}
  .attendance-controls-four{grid-template-columns:1.25fr .9fr .75fr;gap:7px}
  .attendance-controls-four label{font-size:10px}
  .attendance-controls-four select,.attendance-controls-four input{min-height:42px;padding:8px 7px;font-size:13px}
  .daily-rate-field{grid-column:1/-1;padding:9px}
  .attendance-bulk-actions{grid-template-columns:1fr 1fr}
  .attendance-bulk-actions .btn-danger{grid-column:1/-1}
}
@media(max-width:390px){
  .attendance-controls-four{grid-template-columns:1fr 1fr}
  .attendance-controls-four label:first-child{grid-column:1/-1}
  .daily-rate-field{grid-column:1/-1}
}

/* v1.6.0 - Attendance spreadsheet layout */
.attendance-page{overflow:visible}.attendance-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding-bottom:16px;border-bottom:1px solid var(--line)}.attendance-page-head h2{margin:2px 0 0}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--primary)}.attendance-date-form{display:flex;align-items:flex-end;gap:9px}.attendance-date-form label{min-width:190px}.attendance-dashboard{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr)) minmax(280px,1.65fr);border:1px solid #dce5ed;border-radius:13px;overflow:hidden;margin-top:16px;background:#fff}.attendance-stat{padding:16px 18px;border-right:1px solid #e4e9ee;min-height:102px;display:flex;flex-direction:column;justify-content:center}.attendance-stat span{font-size:12px;color:#617083}.attendance-stat strong{font-size:23px;line-height:1.25;margin-top:5px;color:#132036}.attendance-stat small{font-size:11px;color:#87919d;margin-top:4px}.attendance-stat.accent strong{color:#d97600}.attendance-guide{padding:15px 18px;background:#eff7ff;color:#24476d}.attendance-guide strong{text-transform:uppercase;font-size:12px;letter-spacing:.06em}.attendance-guide p{margin:7px 0 0;font-size:12px;line-height:1.55}.attendance-quick{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:18px 0 14px}.attendance-quick>strong{text-transform:uppercase;font-size:12px;margin-right:8px}.attendance-form{margin-top:0}.attendance-department{margin-top:14px;border:1px solid #dfe5ea;border-radius:13px;overflow:hidden;background:#fff}.attendance-department-title{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:linear-gradient(90deg,#e8f8ef,#f8fcfa);color:#176b4b}.attendance-department-title.press{background:linear-gradient(90deg,#fff0dd,#fffaf3);color:#a85c00}.attendance-department-title strong{font-size:13px;letter-spacing:.04em}.attendance-department-title span{font-size:11px;opacity:.75}.attendance-table-wrap{overflow-x:auto}.attendance-table{width:100%;min-width:850px;border-collapse:collapse}.attendance-table th,.attendance-table td{padding:7px 12px;border-bottom:1px solid #e7ebef;vertical-align:middle}.attendance-table th{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:#5d6874;background:#fafbfc;text-align:left}.attendance-table tbody tr:hover{background:#fbfdfc}.attendance-table tbody tr.is-daily{background:#fffaf1}.attendance-table .col-index{width:42px;text-align:center;color:#77818c}.employee-cell strong{display:block;font-size:13px}.employee-cell small{display:none;color:#79838e}.attendance-table select,.attendance-table input{height:38px;min-height:38px;padding:7px 10px;font-size:13px}.attendance-table .pay-type{width:145px;border-color:#7fd1a7;color:#087642;font-weight:700}.attendance-table tr.is-daily .pay-type{border-color:#f4b55e;color:#c86d00;background:#fffaf0}.attendance-table .work-units,.attendance-table .meal-units{width:90px}.daily-rate-cell{min-width:300px}.money-input.compact{display:flex;align-items:center;gap:8px}.money-input.compact input{width:100%;min-width:180px}.money-input.compact span{font-size:11px;color:#687480;white-space:nowrap}.attendance-row:not(.is-daily) .daily-rate{background:#f5f7f8;color:#a4adb5;border-color:#e4e8eb}.attendance-table tfoot td{padding:10px 12px;background:#fbfcfd;font-size:12px;border-bottom:0}.attendance-table tfoot strong{color:#cf6c00}.attendance-savebar{position:sticky;bottom:72px;z-index:9;margin:18px 0 2px;padding:12px 14px;border:1px solid #dbe4df;border-radius:13px;background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(20,40,60,.12);display:flex;align-items:center;justify-content:space-between;gap:16px;backdrop-filter:blur(8px)}.attendance-savebar div{display:flex;flex-direction:column}.attendance-savebar span{font-size:11px;color:#77818b;margin-top:2px}.attendance-savebar .btn{min-width:180px}
@media(max-width:1100px){.attendance-dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-guide{grid-column:1/-1}.attendance-stat:nth-child(2){border-right:0}.attendance-stat:nth-child(3),.attendance-stat:nth-child(4){border-top:1px solid #e4e9ee}}
@media(max-width:700px){.attendance-page-head{align-items:stretch;flex-direction:column}.attendance-date-form{display:grid;grid-template-columns:1fr auto}.attendance-date-form label{min-width:0}.attendance-dashboard{grid-template-columns:1fr 1fr}.attendance-stat{padding:13px;min-height:88px}.attendance-stat strong{font-size:18px}.attendance-guide{grid-column:1/-1}.attendance-quick{display:grid;grid-template-columns:1fr 1fr}.attendance-quick>strong{grid-column:1/-1}.attendance-quick .btn:first-of-type{grid-column:1/-1}.attendance-department{border-radius:11px}.attendance-table{min-width:760px}.attendance-table th,.attendance-table td{padding:7px 9px}.attendance-table .col-index{display:none}.employee-cell{position:sticky;left:0;z-index:2;background:inherit;min-width:130px;box-shadow:5px 0 8px rgba(25,40,55,.04)}.employee-cell small{display:block;font-size:10px}.attendance-savebar{bottom:76px;flex-direction:column;align-items:stretch}.attendance-savebar .btn{width:100%}}

/* v1.7.0 - báo cáo chi tiết theo ngày */
.daily-report-filter{padding:16px 20px}
.daily-date-nav{display:grid;grid-template-columns:auto 1fr auto;align-items:end;gap:14px}
.daily-date-nav form{display:flex;align-items:end;justify-content:center;gap:10px}
.daily-date-nav label{min-width:230px}
.daily-report-heading{display:flex;align-items:center;justify-content:space-between;margin:22px 0 14px}
.daily-report-heading span{font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--muted)}
.daily-report-heading h2{margin:3px 0 0;font-size:28px}
.daily-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.daily-metric{background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px;box-shadow:var(--shadow)}
.daily-metric span,.daily-metric small{display:block;color:var(--muted)}
.daily-metric strong{display:block;font-size:24px;margin:8px 0 5px;white-space:nowrap}
.daily-metric.accent{background:linear-gradient(135deg,#effbf6,#fff);border-color:#bdebd7}
.daily-spec-table tfoot,.daily-worker-table tfoot{background:#f7faf9}
.daily-spec-table tfoot th,.daily-worker-table tfoot th{font-weight:800}
.daily-worker-card .card-header{border-bottom:1px solid var(--border)}
.daily-worker-table .deduction{color:#b42318}
.daily-report-note{margin-bottom:25px}
@media print{
  .sidebar,.topbar,.mobile-bottom-nav,.daily-report-filter,.no-print{display:none!important}
  .main-content,.page-content{margin:0!important;padding:0!important;width:100%!important}
  .daily-metrics{grid-template-columns:repeat(5,1fr);gap:5px}
  .daily-metric{box-shadow:none;padding:10px;border-radius:6px}
  .daily-metric strong{font-size:16px}
  .card{box-shadow:none;break-inside:avoid}
  .daily-worker-table,.daily-spec-table{font-size:11px}
}
@media(max-width:1000px){.daily-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-metric:last-child{grid-column:1/-1}}
@media(max-width:700px){
  .daily-date-nav{grid-template-columns:1fr 1fr}
  .daily-date-nav form{grid-column:1/-1;grid-row:1;display:grid;grid-template-columns:1fr auto;width:100%}
  .daily-date-nav label{min-width:0}
  .daily-report-heading{align-items:flex-end}
  .daily-report-heading h2{font-size:23px}
  .daily-metrics{grid-template-columns:1fr 1fr;gap:9px}
  .daily-metric{padding:14px 12px;border-radius:13px}
  .daily-metric strong{font-size:19px}
  .daily-metric span{font-size:13px}
}

/* v1.8.0 - Chuẩn hóa tất cả bảng theo dạng hàng/cột rõ ràng */
.table-wrap,
.table-wrap.data-grid-wrap,
.table-wrap.mobile-card-wrap,
.table-wrap.entry-table-wrap,
.attendance-table-wrap{
  width:100%;
  overflow-x:auto;
  overflow-y:visible;
  border:1px solid #cfd8df;
  border-radius:12px;
  background:#fff;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}
.table-wrap::after,
.attendance-table-wrap::after{content:"";display:block;height:1px}

table,
table.data-grid-table,
table.mobile-cards,
table.entry-table,
table.attendance-table{
  width:100%;
  min-width:720px;
  border-collapse:collapse!important;
  border-spacing:0!important;
  table-layout:auto;
  background:#fff;
  font-variant-numeric:tabular-nums;
}
.entry-table{min-width:760px!important}
.payroll-table table{min-width:1280px!important}
.attendance-table{min-width:900px!important}
.daily-worker-table{min-width:900px!important}
.daily-spec-table{min-width:760px!important}

table thead,
table.mobile-cards thead,
table.entry-table thead{display:table-header-group!important}
table tbody,
table.mobile-cards tbody,
table.entry-table tbody{display:table-row-group!important}
table tfoot,
table.mobile-cards tfoot,
table.entry-table tfoot{display:table-footer-group!important}
table tr,
table.mobile-cards tr,
table.entry-table tr{display:table-row!important;background:#fff;box-shadow:none!important;border-radius:0!important;padding:0!important}
table tbody tr:nth-child(even){background:#f8fafb!important}
table tbody tr:hover{background:#eef7f3!important}
table tbody tr.is-daily{background:#fff8ea!important}

table th,
table td,
table.mobile-cards th,
table.mobile-cards td,
table.entry-table th,
table.entry-table td{
  display:table-cell!important;
  position:static!important;
  padding:10px 11px!important;
  border-right:1px solid #d8e0e6!important;
  border-bottom:1px solid #d8e0e6!important;
  vertical-align:middle!important;
  white-space:nowrap;
  text-align:left;
  width:auto!important;
  min-width:0!important;
  box-shadow:none!important;
}
table th:last-child,table td:last-child{border-right:0!important}
table tbody tr:last-child td{border-bottom:0!important}
table thead th{
  position:sticky!important;
  top:0;
  z-index:4;
  background:#eaf4ef!important;
  color:#173c31!important;
  font-size:12px!important;
  font-weight:800!important;
  letter-spacing:.02em;
  text-transform:none!important;
  border-bottom:2px solid #9ebbad!important;
}
table tfoot th,table tfoot td{
  background:#edf6f2!important;
  font-weight:800!important;
  border-top:2px solid #9ebbad!important;
}
table .text-right{text-align:right!important}
table .text-center{text-align:center!important}
table td strong{font-weight:750}
table td::before,
table.mobile-cards td::before,
table.entry-table td::before{display:none!important;content:none!important}

/* Cột tên dễ bám theo khi kéo ngang trên điện thoại */
@media(max-width:780px){
  .table-wrap,.attendance-table-wrap{border-radius:9px}
  table,table.data-grid-table,table.mobile-cards,table.entry-table{font-size:12px}
  table th,table td,table.mobile-cards th,table.mobile-cards td,table.entry-table th,table.entry-table td{padding:8px 9px!important}
  table thead th{font-size:11px!important}
  .employee-cell,
  .daily-worker-table th:nth-child(2),.daily-worker-table td:nth-child(2),
  .payroll-table th:first-child,.payroll-table td:first-child{
    position:sticky!important;
    left:0;
    z-index:3;
    background:inherit!important;
    box-shadow:4px 0 8px rgba(28,45,68,.08)!important;
  }
  table thead .employee-cell,
  .daily-worker-table thead th:nth-child(2),
  .payroll-table thead th:first-child{z-index:6;background:#eaf4ef!important}
  .entry-table input,.attendance-table input,.attendance-table select{min-height:40px;font-size:14px}
}

@media print{
  .table-wrap,.attendance-table-wrap{overflow:visible!important;border:1px solid #999!important}
  table,table.data-grid-table,table.mobile-cards,table.entry-table,.payroll-table table,.attendance-table{min-width:0!important;width:100%!important;font-size:10px!important}
  table thead th{position:static!important;background:#e8e8e8!important;color:#111!important}
  table th,table td{padding:5px!important;border:1px solid #999!important;white-space:normal!important}
}

/* v1.9.1 - member attendance shows actual work units, hides payroll details */
.viewer-attendance-page .attendance-page-head { margin-bottom: 18px; }
.viewer-attendance-page .muted { margin: 6px 0 0; }
.viewer-attendance-section { margin-top: 18px; }
.viewer-attendance-table { min-width: 620px; }
.viewer-attendance-table th:nth-child(3),
.viewer-attendance-table th:nth-child(4),
.viewer-attendance-table .status-cell { text-align: center; }
.attendance-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 78px;
    padding: 7px 13px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
    border: 1px solid transparent;
}
.attendance-status.is-yes { color: #087443; background: #e9f9f0; border-color: #b8ebcf; }
.attendance-status.is-half { color: #965f00; background: #fff7df; border-color: #f2d58a; }
.attendance-status.is-more { color: #1857a4; background: #edf5ff; border-color: #b9d7fb; }
.attendance-status.is-no { color: #6b7280; background: #f3f4f6; border-color: #dfe3e8; }
@media (max-width: 640px) {
    .viewer-attendance-page .attendance-page-head { align-items: stretch; }
    .viewer-attendance-table { min-width: 560px; }
    .attendance-status { min-width: 66px; padding: 7px 10px; }
}

/* v2.0.0 - chế độ bảng gọn riêng cho điện thoại */
.mobile-table-switch,
.mobile-compact-view{display:none}
.mobile-table-switch{align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px;padding:5px;border:1px solid #d6e0e6;border-radius:12px;background:#f4f7f9}
.mobile-table-switch-label{padding:0 8px;color:#66727d;font-size:12px;font-weight:750}
.mobile-table-switch-buttons{display:flex;gap:4px;margin-left:auto}
.mobile-table-switch button{min-height:36px;border:0;border-radius:9px;padding:8px 12px;background:transparent;color:#5d6873;font-size:12px;font-weight:750;cursor:pointer}
.mobile-table-switch button.is-active{background:#fff;color:var(--primary);box-shadow:0 2px 9px rgba(29,53,69,.12)}
.mobile-compact-table .mobile-name{font-weight:800;color:#172b24;line-height:1.3;white-space:normal}
.mobile-compact-table .mobile-subtext{display:block;margin-top:3px;color:var(--muted);font-size:10px;font-weight:600;white-space:normal}
.mobile-expand-button{width:100%;min-height:34px;border:0;background:transparent;color:inherit;font:inherit;text-align:right;display:flex;align-items:center;justify-content:flex-end;gap:6px;padding:0;cursor:pointer}
.mobile-expand-button strong{white-space:nowrap}
.mobile-expand-icon{flex:0 0 auto;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#edf4f1;color:var(--primary);font-size:13px}
.mobile-detail-row{display:none!important}
.mobile-detail-row.is-open{display:table-row!important}
.mobile-detail-row>td{padding:0!important;background:#f8fbfa!important;white-space:normal!important}
.mobile-detail-panel{padding:12px}
.mobile-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid #dce5e1;border-radius:10px;overflow:hidden;background:#fff}
.mobile-detail-item{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:9px 10px;border-right:1px solid #e2e8e5;border-bottom:1px solid #e2e8e5;min-width:0}
.mobile-detail-item:nth-child(2n){border-right:0}
.mobile-detail-item:nth-last-child(-n+2){border-bottom:0}
.mobile-detail-item span{color:#67736e;font-size:11px;line-height:1.35}
.mobile-detail-item strong{font-size:12px;text-align:right;overflow-wrap:anywhere}
.mobile-detail-item.mobile-detail-wide{grid-column:1/-1;border-right:0}
.mobile-detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.mobile-detail-actions .btn{flex:1 1 120px}
.mobile-summary-row.is-open td{background:#f0f8f4!important}
.mobile-compact-note{padding:10px 12px;margin-bottom:10px;border:1px solid #d6e7df;border-radius:10px;background:#f4faf7;color:#53635c;font-size:12px}

@media(max-width:780px){
  [data-mobile-view]>.mobile-table-switch,
  [data-mobile-view] .mobile-table-switch{display:flex}
  [data-mobile-view].mobile-mode-compact .mobile-full-view{display:none!important}
  [data-mobile-view].mobile-mode-compact .mobile-compact-view{display:block!important}
  [data-mobile-view].mobile-mode-full .mobile-full-view{display:block!important}
  [data-mobile-view].mobile-mode-full .mobile-compact-view{display:none!important}

  .mobile-compact-view .table-wrap{overflow:visible;border-radius:10px}
  table.mobile-compact-table{width:100%!important;min-width:0!important;table-layout:fixed!important;font-size:12px!important}
  table.mobile-compact-table th,
  table.mobile-compact-table td{padding:9px 8px!important;white-space:normal!important;line-height:1.35}
  table.mobile-compact-table thead th{position:static!important;font-size:10px!important;text-transform:uppercase!important;letter-spacing:.03em}
  table.mobile-compact-table .compact-money{text-align:right!important;white-space:nowrap!important}
  table.mobile-compact-table .compact-center{text-align:center!important}
  table.mobile-compact-table .compact-date{white-space:nowrap!important;font-weight:750}
  .mobile-detail-grid{grid-template-columns:1fr 1fr}

  /* Chấm công admin: một nhân viên là một hàng hai tầng, không kéo ngang ở chế độ gọn. */
  .attendance-form.mobile-mode-compact .attendance-table-wrap{overflow:visible;border:0;background:transparent}
  .attendance-form.mobile-mode-compact table.attendance-table{display:block!important;min-width:0!important;background:transparent}
  .attendance-form.mobile-mode-compact .attendance-table thead,
  .attendance-form.mobile-mode-compact .attendance-table tfoot{display:none!important}
  .attendance-form.mobile-mode-compact .attendance-table tbody{display:grid!important;gap:9px}
  .attendance-form.mobile-mode-compact .attendance-table tbody tr{display:grid!important;grid-template-columns:1fr 1fr;gap:9px;padding:11px!important;border:1px solid #d7e0dc;border-radius:12px!important;background:#fff!important;box-shadow:0 4px 14px rgba(28,45,68,.05)!important}
  .attendance-form.mobile-mode-compact .attendance-table tbody tr.is-daily{background:#fffaf0!important;border-color:#efd19f}
  .attendance-form.mobile-mode-compact .attendance-table tbody td{display:block!important;padding:0!important;border:0!important;white-space:normal!important;position:static!important;box-shadow:none!important;background:transparent!important}
  .attendance-form.mobile-mode-compact .attendance-table tbody td::before{content:attr(data-label)!important;display:block!important;margin:0 0 4px;color:#6a756f;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.02em}
  .attendance-form.mobile-mode-compact .attendance-table .col-index{display:none!important}
  .attendance-form.mobile-mode-compact .attendance-table .employee-cell{grid-column:1/-1;min-width:0!important;padding-bottom:8px!important;border-bottom:1px solid #e5ebe8!important}
  .attendance-form.mobile-mode-compact .attendance-table .employee-cell::before{display:none!important}
  .attendance-form.mobile-mode-compact .attendance-table .employee-cell strong{font-size:14px}
  .attendance-form.mobile-mode-compact .attendance-table .employee-cell small{display:inline;margin-left:6px}
  .attendance-form.mobile-mode-compact .attendance-table .daily-rate-cell{grid-column:1/-1}
  .attendance-form.mobile-mode-compact .attendance-table select,
  .attendance-form.mobile-mode-compact .attendance-table input{width:100%!important;min-width:0!important;height:44px!important;min-height:44px!important;font-size:15px}
  .attendance-form.mobile-mode-compact .money-input.compact input{min-width:0!important}
  .attendance-form.mobile-mode-compact .money-input.compact span{font-size:11px}

  /* Chấm công thành viên: đúng ba cột, không cần cuộn ngang. */
  table.viewer-attendance-compact{table-layout:auto!important}
  table.viewer-attendance-compact th:first-child,
  table.viewer-attendance-compact td:first-child{width:54%}
  table.viewer-attendance-compact th:nth-child(2),
  table.viewer-attendance-compact td:nth-child(2),
  table.viewer-attendance-compact th:nth-child(3),
  table.viewer-attendance-compact td:nth-child(3){width:23%;text-align:center!important}
  table.viewer-attendance-compact .attendance-status{min-width:0;width:auto;padding:6px 8px;font-size:11px;white-space:nowrap}

  /* Bảng lương gọn. */
  table.payroll-mobile-table th:first-child,table.payroll-mobile-table td:first-child{width:47%}
  table.payroll-mobile-table th:nth-child(2),table.payroll-mobile-table td:nth-child(2){width:18%;text-align:center!important}
  table.payroll-mobile-table th:nth-child(3),table.payroll-mobile-table td:nth-child(3){width:35%;text-align:right!important}

  /* Sản lượng gọn. */
  table.production-mobile-table th:first-child,table.production-mobile-table td:first-child{width:26%}
  table.production-mobile-table th:nth-child(2),table.production-mobile-table td:nth-child(2){width:18%;text-align:right!important}
  table.production-mobile-table th:nth-child(3),table.production-mobile-table td:nth-child(3){width:22%;text-align:right!important}
  table.production-mobile-table th:nth-child(4),table.production-mobile-table td:nth-child(4){width:34%;text-align:right!important}

  /* Báo cáo ngày gọn. */
  table.daily-worker-mobile-table th:first-child,table.daily-worker-mobile-table td:first-child{width:50%}
  table.daily-worker-mobile-table th:nth-child(2),table.daily-worker-mobile-table td:nth-child(2){width:18%;text-align:center!important}
  table.daily-worker-mobile-table th:nth-child(3),table.daily-worker-mobile-table td:nth-child(3){width:32%;text-align:right!important}
  table.daily-spec-mobile-table th:first-child,table.daily-spec-mobile-table td:first-child{width:36%}
  table.daily-spec-mobile-table th:nth-child(2),table.daily-spec-mobile-table td:nth-child(2){width:18%;text-align:right!important}
  table.daily-spec-mobile-table th:nth-child(3),table.daily-spec-mobile-table td:nth-child(3){width:21%;text-align:right!important}
  table.daily-spec-mobile-table th:nth-child(4),table.daily-spec-mobile-table td:nth-child(4){width:25%;text-align:right!important}
}

@media(max-width:430px){
  .mobile-table-switch{align-items:stretch;flex-direction:column;padding:6px}
  .mobile-table-switch-label{text-align:center;padding:3px 6px}
  .mobile-table-switch-buttons{width:100%;margin:0}
  .mobile-table-switch button{flex:1}
  .mobile-detail-grid{grid-template-columns:1fr}
  .mobile-detail-item,.mobile-detail-item:nth-child(2n),.mobile-detail-item:nth-last-child(-n+2){border-right:0;border-bottom:1px solid #e2e8e5}
  .mobile-detail-item:last-child{border-bottom:0}
  .mobile-detail-item.mobile-detail-wide{grid-column:auto}
  table.mobile-compact-table th,table.mobile-compact-table td{padding:8px 6px!important}
  table.viewer-attendance-compact th:first-child,table.viewer-attendance-compact td:first-child{width:46%}
  table.viewer-attendance-compact th:nth-child(2),table.viewer-attendance-compact td:nth-child(2){width:31%}
  table.viewer-attendance-compact th:nth-child(3),table.viewer-attendance-compact td:nth-child(3){width:23%}
  table.viewer-attendance-compact .attendance-status{font-size:10px;padding:6px 5px}
}

@media print{
  .mobile-table-switch,.mobile-compact-view{display:none!important}
  [data-mobile-view] .mobile-full-view{display:block!important}
}

@media(max-width:780px){
  table.mobile-fit-table{min-width:0!important;width:100%!important;table-layout:auto!important}
  table.mobile-fit-table th,table.mobile-fit-table td{white-space:normal!important;padding:8px 6px!important;font-size:11px!important}
  table.mobile-fit-table .badge{padding:4px 6px;font-size:10px}
}
@media(max-width:780px){
  table.production-detail-mobile-table th:first-child,table.production-detail-mobile-table td:first-child{width:55%}
  table.production-detail-mobile-table th:nth-child(2),table.production-detail-mobile-table td:nth-child(2){width:20%;text-align:right!important}
  table.production-detail-mobile-table th:nth-child(3),table.production-detail-mobile-table td:nth-child(3){width:25%;text-align:right!important}
}


/* v2.0.1 mobile amount spacing fixes */
@media (max-width: 767px){
  table.production-mobile-table th:first-child,table.production-mobile-table td:first-child{width:22%}
  table.production-mobile-table th:nth-child(2),table.production-mobile-table td:nth-child(2){width:14%;text-align:right!important}
  table.production-mobile-table th:nth-child(3),table.production-mobile-table td:nth-child(3){width:18%;text-align:right!important}
  table.production-mobile-table th:nth-child(4),table.production-mobile-table td:nth-child(4){width:46%;text-align:right!important}
  table.production-mobile-table .compact-money,
  table.daily-worker-mobile-table .compact-money,
  table.payroll-mobile-table .compact-money{padding-right:4px!important}
  .mobile-expand-button{display:grid;grid-template-columns:minmax(0,1fr) 24px;align-items:center;justify-content:stretch;column-gap:8px;width:100%}
  .mobile-expand-button strong{min-width:0;display:block;white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.25;text-align:right}
  .mobile-expand-icon{justify-self:end;flex:0 0 auto;width:24px;height:24px}
  table.production-mobile-table .mobile-expand-button strong{font-size:11px}
  table.production-mobile-table .compact-date{white-space:normal!important;line-height:1.2}
}


/* v2.1.0 - tài khoản công nhân cá nhân */
.personal-welcome{background:linear-gradient(135deg,#effaf5,#fff);border-color:#cfe8dc}.personal-welcome span{font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--primary)}.personal-welcome h2{margin:5px 0 2px}.personal-welcome p{margin:0;color:var(--muted)}
.personal-pay-summary{display:grid;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}.personal-pay-summary>div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-bottom:1px solid var(--line)}.personal-pay-summary>div:last-child{border-bottom:0}.personal-pay-summary span{color:var(--muted)}.personal-pay-summary .total{background:var(--soft);font-size:17px}.personal-pay-summary .total strong{color:var(--primary);font-size:20px}.personal-name-value{font-size:18px!important}.compact-user-access{min-width:190px;gap:6px}.compact-user-access select{min-width:160px}.personal-attendance-table{min-width:0!important}
@media(max-width:767px){.mobile-bottom-nav.worker-nav{grid-template-columns:repeat(4,1fr)}.compact-user-access{min-width:220px}.personal-attendance-table th,.personal-attendance-table td{font-size:12px!important}.personal-attendance-table th:first-child,.personal-attendance-table td:first-child{width:42%}.personal-attendance-table th:nth-child(2),.personal-attendance-table td:nth-child(2),.personal-attendance-table th:nth-child(3),.personal-attendance-table td:nth-child(3){width:29%}}


/* v2.2.0 - brand refresh with logo */
body{background:linear-gradient(180deg,#f3f6f9 0%,#eef3f7 100%)}
.sidebar{background:linear-gradient(180deg,#0e2e27 0%,#10372f 100%);border-right:1px solid rgba(255,255,255,.06)}
.sidebar-head{display:block;margin-bottom:12px}
.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 18px;min-width:0}
.brand-logo-wrap{flex:0 0 auto;width:64px;height:64px;border-radius:18px;background:#fff;display:grid;place-items:center;padding:8px;box-shadow:0 10px 24px rgba(0,0,0,.16)}
.brand-logo{display:block;max-width:100%;max-height:100%;object-fit:contain}
.brand-text{min-width:0}
.brand-text strong{font-size:18px;line-height:1.25;letter-spacing:.01em;white-space:normal}
.brand-text small{font-size:12px;opacity:.76;line-height:1.35}
.topbar{background:rgba(255,255,255,.92);box-shadow:0 10px 30px rgba(23,41,61,.05)}
.topbar-title h1{font-size:24px;letter-spacing:-.02em}
.topbar-title p{font-size:12px;letter-spacing:.04em;text-transform:uppercase}
.topbar-meta{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.topbar-company,.topbar-role{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border-radius:999px;font-size:12px;font-weight:700}
.topbar-company{background:#eef7f2;color:var(--primary);border:1px solid #d7ebe1}
.topbar-role{background:#f3f5f8;color:#51606f;border:1px solid #e3e8ed}
.page-content{padding-top:24px}
.card{border:1px solid #e8edf2;border-radius:20px;box-shadow:0 14px 40px rgba(19,36,55,.06)}
.card-header h2,.card h2{font-size:18px}
.metric{align-items:center}
.metric .label{font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.metric .value{font-size:clamp(22px,2vw,28px)}
.metric .icon{width:48px;height:48px;border-radius:15px;background:linear-gradient(135deg,#edf8f3,#dff2e9);box-shadow:inset 0 0 0 1px #d7e9e0}
.btn{border-radius:12px}
.btn-primary{background:linear-gradient(135deg,#1d8a68,#16694f);box-shadow:0 10px 20px rgba(23,107,82,.18)}
.btn-primary:hover{background:linear-gradient(135deg,#197b5d,#12553f)}
.table-wrap{border-radius:16px;border-color:#dfe6ee;box-shadow:0 8px 24px rgba(22,35,44,.03)}
th{background:#f3f7fa;color:#435162;font-weight:800}
.auth-page{background:radial-gradient(circle at top left,#f2faf5 0,#eef5fb 48%,#f7f9fc 100%)}
.brand-auth-card{width:min(100%,470px);padding:28px 26px 24px;text-align:center;border:1px solid #ecf0f4}
.auth-logo-wrap{width:100%;display:flex;justify-content:center;margin-bottom:16px}
.auth-logo-image{display:block;max-width:min(100%,400px);width:100%;height:auto;border-radius:18px;box-shadow:0 16px 35px rgba(20,40,60,.08)}
.auth-brand-kicker{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:#eef7f2;color:var(--primary);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.auth-footer-note{margin-top:15px;font-size:12px;color:#6f7883;line-height:1.5}
.view-only-banner{border-radius:14px}
@media(max-width:780px){
  .brand{padding:2px 4px 12px}
  .brand-logo-wrap{width:56px;height:56px;border-radius:16px}
  .brand-text strong{font-size:16px}
  .topbar{padding:10px 12px;align-items:flex-start}
  .topbar-title h1{font-size:19px}
  .topbar-meta{display:none}
  .page-content{padding-top:14px}
  .card{border-radius:16px}
  .brand-auth-card{padding:22px 16px 20px}
  .auth-logo-image{max-width:100%;border-radius:14px}
}

/* v2.3.0 - phân hệ xuất nhập kho */
.sidebar nav a.inventory-subnav{margin-left:16px;min-height:40px;padding-top:9px;padding-bottom:9px;font-size:12px;background:rgba(255,255,255,.035)}
.inventory-hero,.inventory-page-head{display:flex;align-items:center;justify-content:space-between;gap:22px;background:linear-gradient(135deg,#fff 0%,#f4faf7 100%)}
.inventory-hero h2,.inventory-page-head h2{margin:3px 0 5px;font-size:23px}
.inventory-hero p,.inventory-page-head p{margin:0}
.inventory-kpi{display:block;transition:transform .18s ease,box-shadow .18s ease;border-top:4px solid transparent}
.inventory-kpi:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(19,36,55,.11)}
.inventory-kpi.export{border-top-color:#1677c8}.inventory-kpi.veneer{border-top-color:#d78a1f}.inventory-kpi.glue{border-top-color:#6c56b8}.inventory-kpi.net{border-top-color:#17865f}
.inventory-kpi.export .icon{color:#1267ad;background:#eaf5ff}.inventory-kpi.veneer .icon{color:#a9630b;background:#fff2df}.inventory-kpi.glue .icon{color:#59449f;background:#f0ecff}
.inventory-action-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.inventory-action{display:flex;align-items:center;gap:14px;padding:18px;border:1px solid #e2e8ee;border-radius:17px;background:#fff;box-shadow:0 10px 28px rgba(19,36,55,.05);transition:.18s ease}
.inventory-action:hover{transform:translateY(-2px);border-color:#cdd9e4}
.inventory-action>span{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;font-size:23px;font-weight:800;flex:0 0 auto}
.inventory-action strong,.inventory-action small{display:block}.inventory-action strong{font-size:15px}.inventory-action small{color:var(--muted);margin-top:3px;line-height:1.45}
.inventory-action.export>span{background:#e9f5ff;color:#1269b3}.inventory-action.veneer>span{background:#fff1dd;color:#a7630d}.inventory-action.glue>span{background:#f0ecff;color:#624aa8}
.inventory-type{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}.inventory-type.export{background:#e9f5ff;color:#1269b3}.inventory-type.veneer{background:#fff1dd;color:#a7630d}.inventory-type.glue{background:#f0ecff;color:#624aa8}
.inventory-document-form textarea{min-height:72px}
.inventory-entry-wrap{border-radius:14px}.inventory-entry-table{min-width:1180px}.veneer-entry-table{min-width:1420px}.glue-entry-table{min-width:1050px}
.inventory-entry-table th{text-align:center}.inventory-entry-table td{padding:7px}.inventory-entry-table input,.inventory-entry-table select{min-height:38px;padding:7px 9px;font-size:13px}.inventory-entry-table td:first-child{width:42px;text-align:center;font-weight:750;color:#697581}.inventory-entry-table td:last-child{width:48px;text-align:center}
.inventory-entry-table .text-right{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
.inventory-summary strong{font-variant-numeric:tabular-nums}.inline-delete-form{display:inline}.inline-delete-form button{vertical-align:middle}
.inventory-history-table{min-width:980px}
@media(max-width:1100px){.inventory-action-grid{grid-template-columns:1fr}.inventory-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){
 .sidebar nav a.inventory-subnav{margin-left:8px}
 .inventory-hero,.inventory-page-head{align-items:stretch;flex-direction:column}.inventory-hero h2,.inventory-page-head h2{font-size:20px}.inventory-page-head .actions{display:grid;grid-template-columns:1fr 1fr}.inventory-page-head .actions .btn{width:100%}
 .inventory-kpi-grid{grid-template-columns:1fr}.inventory-action{padding:14px}.inventory-entry-wrap{overflow:auto;border:1px solid var(--line)}
 .inventory-entry-table input{font-size:15px;min-height:42px}.inventory-summary{grid-template-columns:1fr 1fr}
 .inline-delete-form{display:inline-block;margin-top:5px}
}
@media(max-width:430px){.inventory-page-head .actions{grid-template-columns:1fr}.inventory-summary{grid-template-columns:1fr}}


/* v2.4.0 - nhập liệu bàn phím kiểu Excel */
.excel-entry-hint{display:inline-flex;align-items:center;min-height:36px;padding:7px 11px;border:1px solid #d8e7df;border-radius:10px;background:#f3faf6;color:#4d6258;font-size:12px;line-height:1.4}
.excel-grid input:focus,.excel-grid select:focus,.excel-grid textarea:focus{position:relative;z-index:2;border-color:#14825f!important;box-shadow:0 0 0 3px rgba(20,130,95,.18)!important;background:#fff!important}
.excel-grid td:focus-within{background:#f1faf6!important;box-shadow:inset 0 0 0 1px rgba(20,130,95,.28)}
.inventory-entry-table.excel-grid input,.inventory-entry-table.excel-grid select,.attendance-table.excel-grid input,.attendance-table.excel-grid select{font-variant-numeric:tabular-nums}
@media(max-width:780px){.excel-entry-hint{width:100%;justify-content:center;text-align:center}}


/* v2.5.0 - sales units, customers and receivables */
.inventory-action.sales>span{background:#e7f6f0;color:#167153}.inventory-action.debt>span{background:#fff2d9;color:#9b6509}
.receivable-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr)) auto auto;gap:12px;align-items:end}
.receivable-table{min-width:850px}.receivable-detail-table{min-width:1150px}.receivable-detail-table tfoot th{background:#e8f5ef;color:#174f3e}
@media(max-width:1100px){.receivable-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.receivable-filter-grid .btn{width:100%}}
@media(max-width:780px){.receivable-filter-grid{grid-template-columns:1fr}.receivable-filter-grid .btn{width:100%}}


/* v2.5.1 - menu grouping, compact Plywood branding */
.brand{flex-direction:column;align-items:stretch;gap:9px;padding:2px 6px 17px}
.brand-logo-wrap{width:100%;height:54px;border-radius:14px;padding:9px 12px}
.brand-logo{width:100%;height:100%;object-fit:contain}
.brand-text{display:block;text-align:left;padding:0 3px}
.brand-text strong{font-size:18px;line-height:1.2;white-space:nowrap;letter-spacing:.01em}
.brand-text small{font-size:11px;line-height:1.35;margin-top:3px}
.sidebar-menu-group{margin:1px 0;border-radius:12px}
.sidebar-menu-group>summary{list-style:none;display:flex;align-items:center;gap:12px;min-height:46px;padding:12px 14px;border-radius:11px;color:#cbe0d8;cursor:pointer;font-weight:700;user-select:none}
.sidebar-menu-group>summary::-webkit-details-marker{display:none}
.sidebar-menu-group>summary:hover,.sidebar-menu-group[open]>summary{background:rgba(255,255,255,.09);color:#fff}
.sidebar-group-icon{width:22px;text-align:center;font-size:17px;flex:0 0 auto}
.sidebar-group-arrow{margin-left:auto;transition:transform .18s ease;font-size:15px;opacity:.8}
.sidebar-menu-group[open] .sidebar-group-arrow{transform:rotate(180deg)}
.sidebar-submenu{display:grid;gap:4px;margin:5px 0 7px 17px;padding-left:10px;border-left:1px solid rgba(255,255,255,.16)}
.sidebar nav .sidebar-submenu a{min-height:39px;padding:9px 10px;font-size:12px;background:rgba(255,255,255,.025)}
.sidebar nav .sidebar-submenu a span{font-size:14px;width:18px}
.receivable-error{border:1px solid #fecaca;background:#fff4f4;color:#9b1c1c;padding:14px;border-radius:12px;margin-bottom:14px}
@media(max-width:780px){
 .brand-logo-wrap{height:52px}
 .brand-text strong{font-size:17px}
 .sidebar-submenu{margin-left:12px}
}


/* v2.6.0 - Inventory mobile-first */
.inventory-mobile-nav{display:none}
@media(max-width:780px){
  body.page-inventory .page-content,body.page-warehouse_export .page-content,body.page-veneer_import .page-content,body.page-glue_import .page-content,body.page-sales_master .page-content,body.page-receivables .page-content{padding-left:10px;padding-right:10px;padding-top:10px}
  .inventory-mobile-nav{display:flex;position:sticky;top:66px;z-index:29;gap:6px;padding:7px 8px;overflow-x:auto;background:rgba(248,251,250,.97);backdrop-filter:blur(12px);border-bottom:1px solid #dce6e1;scrollbar-width:none;box-shadow:0 7px 18px rgba(17,45,36,.06)}
  .inventory-mobile-nav::-webkit-scrollbar{display:none}
  .inventory-mobile-nav a{flex:1 0 70px;min-width:70px;display:grid;place-items:center;gap:2px;padding:7px 5px;border-radius:11px;color:#61716a;font-size:18px;line-height:1;background:#fff;border:1px solid #e2e9e5}
  .inventory-mobile-nav a small{font-size:10px;line-height:1.15;white-space:nowrap}
  .inventory-mobile-nav a.active{background:#176b52;color:#fff;border-color:#176b52;box-shadow:0 7px 16px rgba(23,107,82,.2)}
  .inventory-hero,.inventory-page-head{padding:14px;border-radius:15px;gap:12px}
  .inventory-hero h2,.inventory-page-head h2{font-size:19px;line-height:1.25;margin:2px 0 4px}
  .inventory-hero p,.inventory-page-head p{font-size:12px;line-height:1.45}
  .inventory-page-head .actions{display:flex;overflow-x:auto;gap:7px;margin:0 -2px;padding:2px;scrollbar-width:none}
  .inventory-page-head .actions::-webkit-scrollbar{display:none}
  .inventory-page-head .actions .btn{flex:0 0 auto;width:auto;min-height:38px;padding:8px 11px;font-size:11px;white-space:nowrap}
  .inventory-kpi-grid{display:grid;grid-template-columns:1fr 1fr!important;gap:9px}
  .inventory-kpi{padding:13px!important;border-radius:15px!important;border-top-width:3px}
  .inventory-kpi .metric{min-height:104px;display:block;position:relative}
  .inventory-kpi .metric .icon{position:absolute;right:0;top:0;width:34px;height:34px;border-radius:11px;font-size:16px}
  .inventory-kpi .label{padding-right:38px;font-size:10px!important}
  .inventory-kpi .value{font-size:16px!important;margin-top:12px;padding-right:0;line-height:1.25}
  .inventory-kpi .small{font-size:10px;line-height:1.35;margin-top:5px}
  .inventory-action-grid{display:grid;grid-template-columns:1fr 1fr!important;gap:9px}
  .inventory-action{min-width:0;padding:12px 10px;border-radius:14px;display:block;text-align:center}
  .inventory-action>span{width:38px;height:38px;border-radius:12px;margin:0 auto 8px;font-size:18px}
  .inventory-action strong{font-size:12px;line-height:1.25}
  .inventory-action small{display:none}
  .inventory-document-form{gap:12px}
  .inventory-document-form>.form-grid{padding:12px;background:#f7faf9;border:1px solid #e0e9e5;border-radius:13px;gap:10px}
  .inventory-document-form>label{padding:12px;background:#f7faf9;border:1px solid #e0e9e5;border-radius:13px}
  .inventory-document-form textarea{min-height:66px}
  .inventory-entry-wrap{overflow:visible!important;border:0!important;background:transparent!important}
  table.inventory-entry-mobile{display:block!important;width:100%!important;min-width:0!important;border-collapse:separate!important}
  table.inventory-entry-mobile thead{display:none!important}
  table.inventory-entry-mobile tbody{display:grid!important;gap:10px!important}
  table.inventory-entry-mobile tbody tr{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;position:relative;padding:43px 11px 12px;background:#fff;border:1px solid #dce5e1;border-radius:14px;box-shadow:0 7px 20px rgba(22,40,52,.06)}
  table.inventory-entry-mobile tbody td{display:block!important;position:static!important;width:auto!important;min-width:0!important;padding:0!important;border:0!important;text-align:left!important;background:transparent!important}
  table.inventory-entry-mobile tbody td::before{content:attr(data-label);display:block;margin:0 0 4px;color:#67746e;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;line-height:1.2}
  table.inventory-entry-mobile tbody td.row-number{position:absolute!important;left:11px!important;top:11px!important;display:grid!important;place-items:center;width:27px!important;height:27px!important;border-radius:9px!important;background:#176b52!important;color:#fff!important;font-weight:800!important;font-size:12px!important}
  table.inventory-entry-mobile tbody td.row-number::before{display:none!important}
  table.inventory-entry-mobile tbody td:last-child{position:absolute!important;right:8px!important;top:8px!important;width:34px!important}
  table.inventory-entry-mobile tbody td:last-child::before{display:none!important}
  table.inventory-entry-mobile tbody td:last-child .btn{width:34px;height:34px;min-height:34px;padding:0;border-radius:10px;font-size:18px}
  table.inventory-entry-mobile input,table.inventory-entry-mobile select{width:100%!important;min-width:0!important;min-height:45px!important;padding:9px 10px!important;font-size:16px!important;border-radius:10px!important;background:#fff!important}
  table.inventory-entry-mobile .row-volume,table.inventory-entry-mobile .vol,table.inventory-entry-mobile .total{grid-column:1/-1;padding:10px 11px!important;border-radius:10px!important;background:#edf7f2!important;color:#176b52!important;font-size:15px!important;font-weight:850!important;text-align:right!important}
  table.inventory-entry-mobile .row-volume::before,table.inventory-entry-mobile .vol::before,table.inventory-entry-mobile .total::before{float:left;margin:2px 8px 0 0;color:#567167}
  table.inventory-entry-mobile .row-amount,table.inventory-entry-mobile .amt{grid-column:1/-1;padding:11px!important;border-radius:10px!important;background:#fff5df!important;color:#8b5a08!important;font-size:17px!important;font-weight:900!important;text-align:right!important}
  table.inventory-entry-mobile .row-amount::before,table.inventory-entry-mobile .amt::before{float:left;margin:3px 8px 0 0;color:#80663a}
  .glue-entry-table tbody td:nth-child(2){grid-column:1/-1}
  .glue-entry-table tbody td:nth-child(3){display:none!important}
  .veneer-entry-table tbody td:nth-child(8),.veneer-entry-table tbody td:nth-child(10){grid-column:1/-1}
  .entry-row-tools{position:sticky;bottom:calc(77px + env(safe-area-inset-bottom));z-index:17;padding:8px;background:rgba(247,250,249,.95);backdrop-filter:blur(10px);border:1px solid #dce7e2;border-radius:13px;box-shadow:0 8px 24px rgba(20,44,35,.1)}
  .entry-row-tools .btn{width:100%;min-height:43px}
  .entry-row-tools .excel-entry-hint,.entry-row-tools .small{display:none}
  .inventory-summary{display:flex!important;overflow-x:auto;gap:7px;padding:7px!important;background:#f4f8f6;scrollbar-width:none}
  .inventory-summary::-webkit-scrollbar{display:none}
  .inventory-summary .summary-item{flex:0 0 145px;padding:9px 10px;min-height:68px}
  .inventory-summary .summary-item small{font-size:10px}
  .inventory-summary .summary-item strong{font-size:14px;white-space:nowrap}
  .inventory-document-form .mobile-primary-action{bottom:calc(70px + env(safe-area-inset-bottom));min-height:52px;border-radius:14px;font-size:15px;z-index:22}
  .inventory-history-wrap{overflow:visible!important;border:0!important;background:transparent!important}
  table.inventory-mobile-cards{display:block!important;width:100%!important;min-width:0!important;border-collapse:separate!important}
  table.inventory-mobile-cards thead{display:none!important}
  table.inventory-mobile-cards tbody{display:grid!important;gap:10px!important}
  table.inventory-mobile-cards tbody tr{display:grid!important;grid-template-columns:1fr 1fr;gap:0 12px;padding:12px;background:#fff;border:1px solid #dce5e1;border-radius:14px;box-shadow:0 6px 18px rgba(22,40,52,.05)}
  table.inventory-mobile-cards tbody td{display:flex!important;justify-content:space-between;align-items:flex-start;gap:10px;min-width:0;padding:8px 0!important;border-bottom:1px dashed #e3e9e6!important;text-align:right!important;white-space:normal!important;overflow-wrap:anywhere;background:transparent!important}
  table.inventory-mobile-cards tbody td::before{content:attr(data-label);flex:0 0 auto;color:#68756f;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;text-align:left}
  table.inventory-mobile-cards tbody td[data-label=""],table.inventory-mobile-cards tbody td.inventory-row-actions{grid-column:1/-1;display:block!important;border-bottom:0!important;padding-top:10px!important}
  table.inventory-mobile-cards tbody td[data-label=""]::before,table.inventory-mobile-cards tbody td.inventory-row-actions::before{display:none!important}
  table.inventory-mobile-cards tbody td:first-child{grid-column:1/-1;font-size:14px;font-weight:800;color:#1b2d26}
  table.inventory-mobile-cards tbody td:first-child::before{font-size:10px;color:#68756f;font-weight:800}
  table.inventory-mobile-cards tbody td:nth-last-child(2){border-bottom:0!important}
  table.inventory-mobile-cards .inventory-row-actions,table.inventory-mobile-cards td:last-child{display:flex!important;gap:7px;flex-wrap:wrap;justify-content:stretch}
  table.inventory-mobile-cards .inventory-row-actions .btn,table.inventory-mobile-cards td:last-child .btn,table.inventory-mobile-cards td:last-child form{flex:1 1 85px;width:auto;margin:0}
  table.inventory-mobile-cards td:last-child form .btn{width:100%}
  table.inventory-mobile-cards tfoot{display:block!important;margin-top:10px}
  table.inventory-mobile-cards tfoot tr{display:grid!important;grid-template-columns:1fr 1fr;background:#eaf6f0!important}
  table.inventory-mobile-cards tfoot th{display:block!important;padding:8px!important;text-align:right!important;border:0!important}
  .receivable-filter-grid{padding:12px;background:#f7faf9;border:1px solid #e0e9e5;border-radius:14px;gap:10px}
  .receivable-filter-grid .btn{min-height:47px}
  .receivable-filter-grid .btn-soft{background:#176b52;color:#fff}
  body.page-sales_master .grid.two{display:block}
  body.page-sales_master .grid.two>.card{margin-bottom:12px}
  body.page-sales_master .stack-form .btn-primary{position:sticky;bottom:calc(72px + env(safe-area-inset-bottom));z-index:16}
}
@media(max-width:430px){
  .inventory-kpi-grid{grid-template-columns:1fr!important}
  .inventory-action-grid{grid-template-columns:1fr 1fr!important}
  table.inventory-entry-mobile tbody tr{grid-template-columns:1fr 1fr}
  table.inventory-mobile-cards tbody tr{grid-template-columns:1fr}
  table.inventory-mobile-cards tbody td,table.inventory-mobile-cards tbody td:first-child{grid-column:1/-1}
  .inventory-summary .summary-item{flex-basis:132px}
}


/* v2.6.1 - mobile field labels and clean logo */
.brand{display:block!important;padding:0 4px 18px!important}
.brand-logo-wrap{display:block!important;width:100%!important;height:auto!important;min-height:0!important;padding:0!important;overflow:hidden;background:#fff;border-radius:15px;box-shadow:0 10px 24px rgba(0,0,0,.16)}
.brand-logo{display:block!important;width:100%!important;height:auto!important;max-width:none!important;max-height:none!important;object-fit:contain!important}
.brand-text{display:none!important}
.mobile-field-label{display:none}
.mobile-field-output{font:inherit;color:inherit}

@media(max-width:780px){
  .sidebar-head{position:relative}
  .brand{padding-right:50px!important}
  .sidebar-close{position:absolute;right:0;top:2px;z-index:2}
  .brand-logo-wrap{border-radius:13px}
  table.inventory-entry-mobile tbody tr{padding-top:50px!important;gap:12px!important}
  table.inventory-entry-mobile tbody td::before{display:none!important}
  table.inventory-entry-mobile .mobile-field-label{display:block!important;margin:0 0 6px;color:#42524b;font-size:11px;font-weight:850;line-height:1.25;text-transform:none;letter-spacing:.01em}
  table.inventory-entry-mobile input,table.inventory-entry-mobile select{border:1px solid #cfdad5!important;background:#fff!important;box-shadow:0 1px 0 rgba(20,50,40,.02)}
  table.inventory-entry-mobile input::placeholder{color:#a2aaa6;opacity:1;font-size:13px}
  table.inventory-entry-mobile input:focus,table.inventory-entry-mobile select:focus{border-color:#2d9c76!important;box-shadow:0 0 0 3px rgba(45,156,118,.13)!important}
  table.inventory-entry-mobile .row-volume,
  table.inventory-entry-mobile .vol,
  table.inventory-entry-mobile .total,
  table.inventory-entry-mobile .row-amount,
  table.inventory-entry-mobile .amt{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important}
  table.inventory-entry-mobile .row-volume .mobile-field-label,
  table.inventory-entry-mobile .vol .mobile-field-label,
  table.inventory-entry-mobile .total .mobile-field-label,
  table.inventory-entry-mobile .row-amount .mobile-field-label,
  table.inventory-entry-mobile .amt .mobile-field-label{margin:0!important;color:inherit!important;opacity:.82}
  table.inventory-entry-mobile .mobile-field-output{display:block;min-width:0;text-align:right;font-size:inherit;font-weight:inherit;overflow-wrap:anywhere}
}

@media(max-width:430px){
  table.inventory-entry-mobile tbody tr{grid-template-columns:1fr!important}
  table.inventory-entry-mobile .row-volume,
  table.inventory-entry-mobile .vol,
  table.inventory-entry-mobile .total,
  table.inventory-entry-mobile .row-amount,
  table.inventory-entry-mobile .amt{grid-column:1/-1!important}
}

/* v2.7.0 - phân loại phiếu theo công ty */
.text-danger{color:#b42318!important}
.partner-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.partner-summary-card{display:grid;gap:5px;padding:14px;border:1px solid #dce5e1;border-radius:14px;background:#fff;box-shadow:0 6px 18px rgba(22,40,52,.04)}
.partner-summary-card:hover{border-color:#9fcab8;transform:translateY(-1px)}
.partner-summary-card strong{font-size:14px;line-height:1.3}
.partner-summary-card span{color:var(--muted);font-size:12px}
.partner-summary-card b{font-size:16px;color:var(--primary);font-variant-numeric:tabular-nums}
.partner-summary-card em{font-style:normal;font-size:11px;font-weight:800;color:#a15c00;background:#fff3df;padding:5px 7px;border-radius:8px;width:max-content;max-width:100%}
.partner-summary-card.has-warning{border-color:#efc786;background:#fffdfa}
.inventory-company-filter{display:flex;align-items:end;gap:8px;flex-wrap:wrap;width:100%}
.inventory-company-filter label{min-width:150px;flex:1 1 165px}
.inventory-company-filter .btn{flex:0 0 auto}
.company-document-kpis .company-warning-card{border-color:#efc786;background:#fffaf0}
.company-document-kpis .company-warning-card .icon{background:#fff0cf;color:#9b5a00}
.company-document-section{scroll-margin-top:100px}
.company-document-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
.company-document-card{display:grid;gap:9px;padding:15px;border:1px solid #dce5e1;border-radius:16px;background:#fff;box-shadow:0 7px 22px rgba(22,40,52,.05)}
.company-document-card:hover{border-color:#a8cbbc;transform:translateY(-2px)}
.company-document-card.has-warning{border-color:#efc786;background:#fffdfa}
.company-document-card-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.company-document-card-head em{font-style:normal;font-size:10px;font-weight:800;color:#9f5d00}
.company-document-card h3{margin:0;font-size:16px;line-height:1.35}
.company-document-stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #e3e9e6;border-radius:11px;overflow:hidden}
.company-document-stats span{padding:8px;text-align:center;border-right:1px solid #e3e9e6;min-width:0}
.company-document-stats span:last-child{border-right:0}
.company-document-stats small,.company-document-stats strong{display:block}
.company-document-stats small{font-size:9px;color:var(--muted);text-transform:uppercase;font-weight:800}
.company-document-stats strong{font-size:13px;margin-top:3px;overflow-wrap:anywhere}
.company-document-card>b{font-size:18px;color:var(--primary);font-variant-numeric:tabular-nums}
.company-document-card>small{color:var(--muted)}
.company-master-list{display:grid;gap:9px}
.company-master-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #e2e8e5;border-radius:13px;background:#fff}
.company-master-item>div:first-child{min-width:0}
.company-master-item strong,.company-master-item small{display:block}
.company-master-item strong{font-size:14px;overflow-wrap:anywhere}
.company-master-item small{color:var(--muted);font-size:11px;margin:3px 0 7px}
.company-master-item .actions{justify-content:flex-end}

@media(max-width:1100px){
  .master-company-forms,.master-company-lists{grid-template-columns:1fr!important}
}
@media(max-width:780px){
  .partner-summary-grid{display:flex;overflow-x:auto;gap:9px;padding-bottom:4px;scrollbar-width:none}
  .partner-summary-grid::-webkit-scrollbar{display:none}
  .partner-summary-card{flex:0 0 230px;padding:12px}
  .inventory-company-filter{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .inventory-company-filter label{min-width:0;width:100%}
  .inventory-company-filter .btn{width:100%}
  .company-document-grid{grid-template-columns:1fr}
  .company-document-card{padding:13px}
  .company-master-item{align-items:flex-start;flex-direction:column}
  .company-master-item .actions{width:100%;display:grid;grid-template-columns:repeat(2,1fr)}
  .company-master-item .actions .btn,.company-master-item .actions form{width:100%}
  .company-master-item .actions form .btn{width:100%}
}
@media(max-width:430px){
  .inventory-company-filter{grid-template-columns:1fr}
  .partner-summary-card{flex-basis:88vw}
  .company-document-stats strong{font-size:12px}
}
.master-company-forms,.master-company-lists{grid-template-columns:repeat(3,minmax(0,1fr))}


/* v2.7.1 - ghi chú riêng từng dòng xuất nhập */
.inventory-entry-table .item-note-cell{min-width:210px}
.inventory-entry-table .item-note{min-width:190px}
@media(max-width:780px){
  table.inventory-entry-mobile .item-note-cell{grid-column:1/-1!important}
  table.inventory-entry-mobile .item-note{width:100%!important}
}
@media print{
  .item-note-cell{white-space:normal!important}
}

/* v2.8.0 - Tính đơn */
.order-calc-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,#fff 0%,#f2faf6 100%)}
.order-calc-hero h2{margin:3px 0 5px;font-size:23px}.order-calc-hero p{margin:0}
.order-formula-note{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:11px;background:#f5f9f7;border:1px solid #dfe9e4;border-radius:13px;color:#52645b;font-size:12px}
.order-formula-note span{padding:7px 9px;background:#fff;border:1px solid #e4ebe7;border-radius:9px}
.order-calc-table{min-width:1240px}.order-calc-table th{text-align:center}.order-calc-table td{padding:7px}.order-calc-table input{min-height:39px;padding:7px 9px;font-size:13px;font-variant-numeric:tabular-nums}
.order-calc-table .row-number{width:42px;text-align:center;font-weight:800;color:#65736d}.order-calc-table .order-spec{min-width:150px}.order-calc-table .billet,.order-calc-table .bars,.order-calc-table .saws,.order-calc-table .sheets{font-weight:800;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.order-calc-summary strong{font-variant-numeric:tabular-nums}.order-history-table{min-width:940px}.order-calc-table .mobile-field-label{display:none}
@media(max-width:1100px){.order-formula-note{grid-template-columns:1fr 1fr}}
@media(max-width:780px){
 body.page-order_calculator .page-content{padding-left:10px;padding-right:10px;padding-top:10px}
 .order-calc-hero{align-items:stretch;flex-direction:column;padding:14px;border-radius:15px}.order-calc-hero h2{font-size:19px;line-height:1.25}.order-calc-hero .actions{display:grid;grid-template-columns:1fr 1fr}
 .order-formula-note{grid-template-columns:1fr 1fr;padding:8px;font-size:10px}.order-formula-note span{padding:7px}
 .order-calc-table-wrap{overflow:visible;border:0;background:transparent}
 table.order-calc-table{display:block;width:100%;min-width:0;border-collapse:separate}
 table.order-calc-table thead{display:none}
 table.order-calc-table tbody{display:grid;gap:10px}
 table.order-calc-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;position:relative;padding:48px 11px 12px;background:#fff;border:1px solid #dce5e1;border-radius:14px;box-shadow:0 7px 20px rgba(22,40,52,.06)}
 table.order-calc-table tbody td{display:block;position:static;width:auto;min-width:0;padding:0;border:0;text-align:left;background:transparent}
 table.order-calc-table .mobile-field-label{display:block;margin:0 0 5px;color:#42524b;font-size:10px;font-weight:850;line-height:1.2}
 table.order-calc-table input{width:100%;min-height:45px;padding:9px 10px;font-size:16px;border-radius:10px}
 table.order-calc-table .row-number{position:absolute;left:11px;top:11px;display:grid;place-items:center;width:27px;height:27px;border-radius:9px;background:#176b52;color:#fff;font-size:12px}
 table.order-calc-table td:last-child{position:absolute;right:8px;top:8px;width:34px}
 table.order-calc-table td:last-child .btn{width:34px;height:34px;min-height:34px;padding:0;border-radius:10px;font-size:18px}
 table.order-calc-table .order-spec{grid-column:1/-1;padding:10px;border-radius:10px;background:#eef7f3}
 table.order-calc-table .order-spec .mobile-field-label{display:inline;margin-right:8px;color:#577067}
 table.order-calc-table .order-spec .mobile-field-output{font-size:15px;color:#176b52}
 table.order-calc-table .billet,table.order-calc-table .bars,table.order-calc-table .saws,table.order-calc-table .sheets{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border-radius:10px;text-align:right}
 table.order-calc-table .billet,table.order-calc-table .bars{background:#edf7f2;color:#176b52}
 table.order-calc-table .saws,table.order-calc-table .sheets{background:#fff5df;color:#8b5a08}
 table.order-calc-table .billet .mobile-field-label,table.order-calc-table .bars .mobile-field-label,table.order-calc-table .saws .mobile-field-label,table.order-calc-table .sheets .mobile-field-label{margin:0;color:inherit;opacity:.78}
 .order-calc-summary{display:flex;overflow-x:auto;gap:7px;padding:7px}.order-calc-summary .summary-item{flex:0 0 138px}
 .order-history-wrap{overflow:visible;border:0;background:transparent}
}
@media(max-width:430px){.order-formula-note{grid-template-columns:1fr}.order-calc-hero .actions{grid-template-columns:1fr}table.order-calc-table tbody tr{grid-template-columns:1fr 1fr}}

/* v2.9.0 - Mobile UX/UI system refresh */
.topbar-user-button{display:none}
.context-mobile-nav{display:none}
.mobile-sheet-backdrop,.mobile-action-sheet,.mobile-unsaved-indicator{display:none}
.mobile-section-toggle,.mobile-card-toggle{display:none}

@media(max-width:780px){
  :root{--mobile-nav-height:72px;--mobile-topbar-height:62px;--mobile-context-height:58px;--mobile-side-gap:10px}
  html{background:#eef3f1;overscroll-behavior-y:none}
  body{background:linear-gradient(180deg,#f4f7f6 0%,#edf3f0 100%);font-size:14px;overflow-x:hidden}
  body.nav-open,body.sheet-open{overflow:hidden;touch-action:none}
  a,button,.btn,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}

  .topbar{min-height:var(--mobile-topbar-height);height:var(--mobile-topbar-height);padding:8px 10px;gap:9px;border-bottom-color:#dce5e1;box-shadow:0 6px 20px rgba(20,45,36,.06)}
  .menu-button{display:grid;place-items:center;width:42px;height:42px;min-height:42px;border-radius:13px;font-size:21px;background:#f8fbfa;color:#174f3e;border-color:#dce6e1}
  .topbar-title{flex:1;min-width:0}
  .topbar-title h1{font-size:17px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .topbar-title p{margin-top:3px;font-size:10px;line-height:1.1;text-transform:none;letter-spacing:.01em;color:#76837d}
  .topbar-user-button{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border:0;border-radius:14px;background:linear-gradient(145deg,#dff3e9,#cceadd);color:#135c45;padding:0}
  .topbar-user-button span{display:grid;place-items:center;width:31px;height:31px;border-radius:11px;background:#fff;font-weight:900;box-shadow:0 5px 12px rgba(21,91,68,.12)}
  .topbar-meta{display:none!important}

  .context-mobile-nav{display:flex;position:sticky;top:var(--mobile-topbar-height);z-index:29;gap:6px;padding:7px 8px;overflow-x:auto;scroll-snap-type:x proximity;background:rgba(247,250,248,.97);backdrop-filter:blur(13px);border-bottom:1px solid #dce6e1;box-shadow:0 6px 16px rgba(17,45,36,.05);scrollbar-width:none}
  .context-mobile-nav::-webkit-scrollbar{display:none}
  .context-mobile-nav a{flex:1 0 78px;min-width:78px;min-height:43px;display:grid;grid-template-columns:auto 1fr;align-items:center;justify-items:start;gap:6px;padding:7px 9px;border:1px solid #e0e8e4;border-radius:12px;background:#fff;color:#5d6d66;scroll-snap-align:start}
  .context-mobile-nav a>span{font-size:17px;line-height:1}
  .context-mobile-nav a small{font-size:10px;line-height:1.12;white-space:nowrap}
  .context-mobile-nav a.active{background:linear-gradient(145deg,#1b7d5f,#145f48);color:#fff;border-color:#176b52;box-shadow:0 7px 16px rgba(23,107,82,.2)}
  .inventory-mobile-nav{display:flex;top:var(--mobile-topbar-height)}
  .inventory-mobile-nav a{flex-basis:86px;min-width:86px}

  .page-content{padding:12px var(--mobile-side-gap) calc(var(--mobile-nav-height) + 22px + env(safe-area-inset-bottom));max-width:none}
  body.press-context .page-content,body.inventory-context .page-content{padding-top:10px}
  body.page-inventory .page-content,body.page-inventory_companies .page-content,body.page-warehouse_export .page-content,body.page-veneer_import .page-content,body.page-glue_import .page-content,body.page-sales_master .page-content,body.page-receivables .page-content,body.page-order_calculator .page-content{padding-left:var(--mobile-side-gap);padding-right:var(--mobile-side-gap)}

  .card{padding:14px;border-radius:16px;border-color:#e0e7e3;box-shadow:0 7px 22px rgba(18,40,31,.055)}
  .section-gap{margin-top:12px}
  .card-header{gap:9px;margin-bottom:12px;align-items:center}
  .card-header h2,.card h2{font-size:16px;line-height:1.3}
  .card-header .badge{flex:0 0 auto}
  .card-header.filter-header{gap:12px}

  input,select,textarea{min-height:48px;border-radius:12px;padding:11px 12px;font-size:16px;background:#fff;border-color:#d5dfda;box-shadow:none}
  input:focus,select:focus,textarea:focus{border-color:#248463;box-shadow:0 0 0 3px rgba(36,132,99,.13)}
  label{gap:6px;font-size:12px;color:#405048}
  textarea{min-height:80px}
  .btn{min-height:46px;border-radius:12px;padding:10px 13px;font-size:13px}
  .btn:active{transform:scale(.985)}
  .btn-sm{min-height:40px;font-size:12px;padding:8px 10px}
  .btn-primary{box-shadow:0 8px 18px rgba(23,107,82,.17)}
  .actions{gap:7px}
  .actions>.btn{flex:1 1 120px}

  .view-only-banner{margin-bottom:10px;padding:9px 11px;border-radius:12px;font-size:11px;line-height:1.4;font-weight:650;background:#eef7f3;border-color:#cfe5da;color:#275c49}
  .alert{padding:11px 12px;border-radius:12px;font-size:12px}
  .empty{padding:24px 14px;border-radius:12px;background:#f8faf9}

  .month-filter{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;width:100%;padding:10px;border:1px solid #e0e7e3;border-radius:14px;background:#f7faf8}
  .month-filter label{width:100%;min-width:0}
  .month-filter .btn{width:auto;min-width:92px}
  .month-input-shell{min-height:48px;border-radius:12px}

  .grid{gap:10px}
  .grid.cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid.two{grid-template-columns:1fr}
  .metric{min-height:94px;position:relative;padding-right:37px}
  .metric .label{font-size:10px;line-height:1.3;text-transform:uppercase;letter-spacing:.04em}
  .metric .value{font-size:17px;line-height:1.25;margin-top:8px}
  .metric .icon{position:absolute;right:0;top:0;width:32px;height:32px;border-radius:11px;font-size:15px}
  .personal-welcome{padding:15px;background:linear-gradient(135deg,#155f49 0%,#1c7a5d 100%);color:#fff}
  .personal-welcome span{font-size:9px;letter-spacing:.12em;opacity:.75}
  .personal-welcome h2{font-size:20px;margin:3px 0}
  .personal-welcome p{font-size:11px;margin:0;opacity:.82}
  .personal-pay-summary>div{padding:11px 12px;font-size:12px}
  .personal-pay-summary .total strong{font-size:18px}

  .summary-bar{display:flex;overflow-x:auto;gap:7px;padding:7px;background:#f4f8f6;scrollbar-width:none;border-radius:14px}
  .summary-bar::-webkit-scrollbar{display:none}
  .summary-item{flex:0 0 142px;padding:9px 10px;min-height:67px;border-radius:11px}
  .summary-item small{font-size:9px;text-transform:uppercase;letter-spacing:.03em}
  .summary-item strong{font-size:14px;margin-top:5px;white-space:nowrap}

  .table-wrap{border-radius:13px;border-color:#dde5e1}
  table.mobile-fit-table{min-width:0!important;table-layout:fixed}
  table.mobile-fit-table th,table.mobile-fit-table td{padding:9px 8px;font-size:11px;overflow-wrap:anywhere}
  table.mobile-fit-table th{font-size:9px}

  /* Automatic mobile cards for management tables */
  .table-wrap.mobile-auto-wrap{overflow:visible;border:0;background:transparent}
  table.mobile-auto-cards{display:block!important;min-width:0!important;width:100%!important;border-collapse:separate!important}
  table.mobile-auto-cards thead{display:none!important}
  table.mobile-auto-cards tbody{display:grid!important;gap:9px}
  table.mobile-auto-cards tbody tr{display:grid!important;grid-template-columns:1fr 1fr;gap:0 12px;padding:12px;border:1px solid #dce5e1;border-radius:14px;background:#fff;box-shadow:0 5px 16px rgba(20,40,32,.045)}
  table.mobile-auto-cards tbody td,table.mobile-auto-cards tbody th{display:flex!important;align-items:flex-start;justify-content:space-between;gap:10px;padding:8px 0!important;border:0!important;border-bottom:1px dashed #e4e9e6!important;text-align:right!important;white-space:normal!important;min-width:0;background:transparent!important}
  table.mobile-auto-cards tbody td::before{content:attr(data-label);flex:0 0 auto;max-width:45%;color:#6d7872;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.03em;text-align:left}
  table.mobile-auto-cards tbody td:first-child{grid-column:1/-1;font-size:14px;font-weight:800;text-align:left!important}
  table.mobile-auto-cards tbody td:first-child::before{font-size:9px}
  table.mobile-auto-cards tbody td:last-child,table.mobile-auto-cards tbody td[data-label=""]{grid-column:1/-1;display:flex!important;gap:7px;flex-wrap:wrap;border-bottom:0!important;padding-top:10px!important}
  table.mobile-auto-cards tbody td:last-child::before,table.mobile-auto-cards tbody td[data-label=""]::before{display:none}
  table.mobile-auto-cards tbody td:last-child .btn,table.mobile-auto-cards tbody td:last-child form{flex:1 1 88px;margin:0}
  table.mobile-auto-cards tbody td:last-child form .btn{width:100%}
  table.mobile-auto-cards tfoot{display:block;margin-top:9px}
  table.mobile-auto-cards tfoot tr{display:grid!important;grid-template-columns:1fr 1fr;padding:10px;border-radius:13px;background:#eaf5ef}
  table.mobile-auto-cards tfoot th{display:block!important;padding:6px!important;border:0!important;text-align:right!important}

  /* Bottom navigation */
  .mobile-bottom-nav{height:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));padding:5px 4px calc(5px + env(safe-area-inset-bottom));background:rgba(255,255,255,.975);border-top-color:#d9e3de;box-shadow:0 -8px 24px rgba(19,43,34,.09)}
  .mobile-bottom-nav a,.mobile-bottom-nav button{position:relative;min-height:55px;border-radius:13px;color:#6a7771;font-size:9px;gap:3px;padding:5px 2px}
  .mobile-bottom-nav .nav-icon{display:grid;place-items:center;width:30px;height:28px;border-radius:10px;font-size:18px}
  .mobile-bottom-nav a.active{color:#176b52;font-weight:850;background:#edf7f2}
  .mobile-bottom-nav a.active .nav-icon{background:#dff1e8}
  .mobile-bottom-nav button:active,.mobile-bottom-nav a:active{background:#eef4f1}

  /* Mobile action sheet */
  .mobile-sheet-backdrop{display:block;position:fixed;inset:0;z-index:89;background:rgba(8,27,20,.42);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:.2s}
  .mobile-sheet-backdrop.open{opacity:1;visibility:visible}
  .mobile-action-sheet{display:block;position:fixed;left:0;right:0;bottom:0;z-index:90;max-height:min(86vh,720px);overflow:auto;padding:8px 12px calc(14px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:#f7faf8;box-shadow:0 -24px 60px rgba(8,31,22,.24);transform:translateY(105%);transition:transform .24s ease}
  .mobile-action-sheet.open{transform:translateY(0)}
  .mobile-sheet-handle{width:42px;height:4px;margin:2px auto 9px;border-radius:999px;background:#cad6d0}
  .mobile-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 2px 12px;border-bottom:1px solid #e0e8e4}
  .mobile-sheet-user{display:flex;align-items:center;gap:10px;min-width:0}
  .mobile-sheet-user>span{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border-radius:14px;background:#dff1e8;color:#176b52;font-weight:900}
  .mobile-sheet-user div{min-width:0}.mobile-sheet-user strong,.mobile-sheet-user small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-sheet-user small{font-size:10px;color:#77837d;margin-top:2px}
  #mobileSheetClose{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:12px;background:#eef3f0;color:#506159;font-size:24px}
  .mobile-sheet-section{margin-top:14px}
  .mobile-sheet-section h3{margin:0 0 8px;padding:0 2px;font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:#718078}
  .mobile-sheet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .mobile-sheet-grid a{display:grid;place-items:center;min-width:0;min-height:92px;padding:10px 6px;border:1px solid #dfe7e3;border-radius:14px;background:#fff;text-align:center}
  .mobile-sheet-grid a>span{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#eaf6f0;color:#176b52;font-size:18px}
  .mobile-sheet-grid b{font-size:11px;margin-top:6px;line-height:1.2}.mobile-sheet-grid small{font-size:8px;color:#7b8781;margin-top:2px;line-height:1.2}
  .mobile-sheet-list{display:grid;gap:7px}
  .mobile-sheet-list a{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px;min-height:48px;padding:7px 10px;border:1px solid #dfe7e3;border-radius:13px;background:#fff}
  .mobile-sheet-list a>span{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#eff6f2;color:#176b52}.mobile-sheet-list b{font-size:12px}.mobile-sheet-list em{font-style:normal;color:#8c9791;font-size:18px}
  .mobile-sheet-logout{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;margin-top:13px;border-radius:13px;background:#fff0ef;color:#aa3028;font-weight:800;font-size:12px}

  .mobile-unsaved-indicator{display:flex;align-items:center;gap:7px;position:fixed;left:50%;bottom:calc(var(--mobile-nav-height) + 11px + env(safe-area-inset-bottom));z-index:44;max-width:calc(100vw - 28px);padding:8px 12px;border-radius:999px;background:#2d3a35;color:#fff;font-size:10px;font-weight:750;box-shadow:0 8px 22px rgba(0,0,0,.18);opacity:0;visibility:hidden;transform:translate(-50%,8px);transition:.18s;white-space:nowrap}
  .mobile-unsaved-indicator span{width:7px;height:7px;border-radius:50%;background:#f5bc4c;box-shadow:0 0 0 3px rgba(245,188,76,.17)}
  .mobile-unsaved-indicator.show{opacity:1;visibility:visible;transform:translate(-50%,0)}

  .mobile-primary-action{position:sticky;bottom:calc(var(--mobile-nav-height) + 8px + env(safe-area-inset-bottom));z-index:22;width:100%;min-height:52px;border-radius:14px;font-size:14px;box-shadow:0 12px 28px rgba(15,81,61,.25)}
  .attendance-savebar{bottom:calc(var(--mobile-nav-height) + 8px + env(safe-area-inset-bottom));padding:10px;border-radius:14px}

  /* Attendance mobile: clear departments and actions */
  .attendance-page-head{gap:10px;padding-bottom:10px}
  .attendance-dashboard{grid-template-columns:1fr 1fr;gap:0;border-radius:14px}
  .attendance-stat{min-height:78px;padding:11px 12px}.attendance-stat strong{font-size:17px}.attendance-stat span{font-size:10px}
  .attendance-guide{padding:11px 12px}.attendance-guide p{font-size:10px;line-height:1.4}
  .attendance-quick{display:flex;overflow-x:auto;flex-wrap:nowrap;gap:7px;margin:12px -1px 10px;padding:1px 1px 5px;scrollbar-width:none}
  .attendance-quick::-webkit-scrollbar{display:none}
  .attendance-quick>strong{display:none}
  .attendance-quick .btn{flex:0 0 auto;min-height:40px;padding:8px 10px;font-size:11px;white-space:nowrap}
  .attendance-department{margin-top:10px;border-radius:14px}
  .attendance-department-title{position:sticky;top:calc(var(--mobile-topbar-height) + var(--mobile-context-height));z-index:6;padding:10px 11px;gap:8px}
  .attendance-department-title>span:not(.sidebar-group-icon){font-size:10px}
  .mobile-section-toggle{display:flex;align-items:center;gap:5px;margin-left:auto;border:0;border-radius:10px;background:rgba(255,255,255,.72);color:inherit;padding:6px 8px;font-size:9px;font-weight:800}
  .mobile-section-toggle b{font-size:12px}
  .attendance-department.mobile-collapsed .attendance-table-wrap{display:none}
  .attendance-department.mobile-collapsed{overflow:visible}

  .mobile-card-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:36px;border:1px solid #dce5e1;border-radius:10px;background:#f5f9f7;color:#466057;padding:7px 10px;font-size:10px;font-weight:800}
  .mobile-collapsible-card.is-collapsed>*:not(.card-header){display:none!important}
  .mobile-collapsible-card.is-collapsed .card-header{margin-bottom:0}

  /* Admin lists and forms */
  body.page-employees .form-grid,body.page-users .form-grid,body.page-settings .form-grid,body.page-sales_master .form-grid{gap:10px}
  body.page-employees .card:first-child,body.page-users .card:first-child,body.page-sales_master .card:first-child{scroll-margin-top:74px}
  .inline-form{display:grid;grid-template-columns:1fr auto;gap:7px;width:100%}
  .inline-form input{min-width:0}
  .inline-delete-form{display:block}

  /* Receivables and company screens */
  .receivable-filter-grid{grid-template-columns:1fr 1fr;gap:9px;padding:10px;border:1px solid #e0e7e3;border-radius:14px;background:#f7faf8}
  .receivable-filter-grid .btn{width:100%}
  .company-document-grid{gap:9px}
  .company-document-card{border-radius:15px;padding:13px}
  .company-document-card h3{font-size:15px}
  .company-document-card>b{font-size:17px}
  .partner-summary-grid{margin:0 -1px}
  .partner-summary-card{flex-basis:82vw}

  /* Better mobile input cards */
  table.inventory-entry-mobile tbody tr,table.order-calc-table tbody tr{border-radius:16px;border-color:#d9e4de;box-shadow:0 8px 22px rgba(20,44,35,.06)}
  table.inventory-entry-mobile .mobile-field-label,table.order-calc-table .mobile-field-label{font-size:9px;letter-spacing:.05em;color:#506159}
  table.inventory-entry-mobile input,table.inventory-entry-mobile select,table.order-calc-table input{min-height:48px!important;border-radius:12px!important}
  .entry-row-tools{bottom:calc(var(--mobile-nav-height) + 8px + env(safe-area-inset-bottom));padding:7px;border-radius:14px}

  body.keyboard-open .mobile-bottom-nav,body.keyboard-open .mobile-unsaved-indicator{transform:translateY(120%);opacity:0;pointer-events:none}
  body.keyboard-open .mobile-primary-action,body.keyboard-open .attendance-savebar,body.input-focused .entry-row-tools{bottom:8px}
  body.keyboard-open .context-mobile-nav{box-shadow:none}
}

@media(max-width:430px){
  .page-content{--mobile-side-gap:8px}
  .grid.cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .metric{min-height:88px}.metric .value{font-size:15px}.metric .label{font-size:9px}
  .month-filter{grid-template-columns:1fr}.month-filter .btn{width:100%}
  table.mobile-auto-cards tbody tr{grid-template-columns:1fr}
  table.mobile-auto-cards tbody td,table.mobile-auto-cards tbody td:first-child{grid-column:1/-1}
  .receivable-filter-grid{grid-template-columns:1fr}
  .mobile-sheet-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.mobile-sheet-grid a{min-height:88px;padding:8px 4px}
}

@media print{
  .context-mobile-nav,.mobile-action-sheet,.mobile-sheet-backdrop,.mobile-unsaved-indicator,.topbar-user-button{display:none!important}
}


/* v2.9.1 - compact, labelled inventory create forms on phones */
.inventory-create-header .eyebrow{display:block;margin-bottom:3px}
.inventory-create-header p{margin:4px 0 0}
.inventory-notes-details{border:1px solid #e0e8e4;border-radius:13px;background:#f8fbf9;overflow:hidden}
.inventory-notes-details summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:10px 13px;cursor:pointer;font-weight:800;list-style:none}
.inventory-notes-details summary::-webkit-details-marker{display:none}
.inventory-notes-details summary::after{content:'+';flex:0 0 auto;width:25px;height:25px;border-radius:8px;background:#e8f4ee;color:#176b52;display:grid;place-items:center;font-size:18px;line-height:1}
.inventory-notes-details[open] summary::after{content:'−'}
.inventory-notes-details summary small{margin-left:auto;color:var(--muted);font-size:10px;font-weight:650}
.inventory-note-field{padding:0 12px 12px}
.inventory-note-field textarea{min-height:70px}
.inventory-items-heading{display:flex;align-items:center;gap:10px;margin-top:2px;padding:2px 1px}
.inventory-items-heading>span{flex:0 0 auto;width:29px;height:29px;border-radius:10px;display:grid;place-items:center;background:#176b52;color:#fff;font-weight:850}
.inventory-items-heading strong,.inventory-items-heading small{display:block}
.inventory-items-heading strong{font-size:15px}
.inventory-items-heading small{margin-top:2px;color:var(--muted);font-size:11px;line-height:1.35}

@media(max-width:780px){
  .inventory-create-card{padding:0!important;overflow:hidden}
  .inventory-create-card>.inventory-create-header{margin:0!important;padding:14px 14px 11px;border-bottom:1px solid #e4ebe7;background:#fff;align-items:center!important;flex-direction:row!important}
  .inventory-create-header>div{min-width:0}
  .inventory-create-header h2{font-size:16px!important;line-height:1.25}
  .inventory-create-header p{font-size:10px!important;line-height:1.35}
  .inventory-create-header>.btn{flex:0 0 auto!important;width:auto!important;min-height:36px!important;padding:7px 10px!important;font-size:10px!important}
  .inventory-create-card>.inventory-document-form{padding:11px 11px 14px;gap:10px!important}
  .inventory-document-form>.inventory-meta-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;padding:0!important;border:0!important;background:transparent!important}
  .inventory-meta-grid label{gap:5px;padding:9px 10px;border:1px solid #dfe8e3;border-radius:12px;background:#f8fbf9;font-size:10px;line-height:1.25}
  .inventory-meta-grid input,.inventory-meta-grid select{min-height:43px!important;padding:8px 10px!important;border-radius:10px!important;font-size:14px!important;font-weight:700}
  .inventory-meta-grid input::placeholder{font-size:12px;font-weight:600}
  .inventory-export-meta-grid .inventory-meta-sales-unit,
  .inventory-export-meta-grid .inventory-meta-customer,
  .inventory-import-meta-grid .inventory-meta-supplier,
  .inventory-glue-meta-grid .inventory-meta-supplier{grid-column:1/-1}
  .inventory-import-meta-grid{grid-template-columns:1fr 1fr!important}
  .inventory-import-meta-grid .inventory-meta-supplier{order:3}
  .inventory-notes-details{border-radius:12px}
  .inventory-notes-details summary{min-height:42px;padding:8px 11px;font-size:11px}
  .inventory-note-field{padding:0 10px 10px}
  .inventory-note-field textarea{min-height:62px!important;font-size:14px!important}
  .inventory-items-heading{margin:2px 2px 0}
  .inventory-items-heading>span{width:27px;height:27px;font-size:12px}
  .inventory-items-heading strong{font-size:13px}
  .inventory-items-heading small{font-size:9px}
  table.inventory-entry-mobile thead{display:none!important}
  table.inventory-entry-mobile tbody td::before{display:block!important;content:attr(data-label)!important;margin:0 0 5px!important;color:#4c5c54!important;font-size:9px!important;font-weight:850!important;text-transform:uppercase!important;letter-spacing:.045em!important;line-height:1.2!important;float:none!important}
  table.inventory-entry-mobile tbody td[data-label=""]::before,
  table.inventory-entry-mobile tbody td.row-number::before,
  table.inventory-entry-mobile tbody td:last-child::before{display:none!important}
  table.inventory-entry-mobile tbody tr{grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:48px 10px 11px!important;gap:9px!important}
  table.inventory-entry-mobile input,table.inventory-entry-mobile select{min-height:46px!important;font-size:15px!important;padding:9px 10px!important}
  table.inventory-entry-mobile .row-volume,
  table.inventory-entry-mobile .vol,
  table.inventory-entry-mobile .total,
  table.inventory-entry-mobile .row-amount,
  table.inventory-entry-mobile .amt{grid-column:1/-1!important;display:block!important}
  table.inventory-entry-mobile .row-volume::before,
  table.inventory-entry-mobile .vol::before,
  table.inventory-entry-mobile .total::before,
  table.inventory-entry-mobile .row-amount::before,
  table.inventory-entry-mobile .amt::before{display:inline-block!important;float:left!important;margin:2px 8px 0 0!important;color:inherit!important;opacity:.78}
  .inventory-create-card .entry-row-tools{gap:6px!important}
  .inventory-create-card .entry-row-tools .btn{min-height:45px!important;border-radius:12px!important}
  .inventory-create-card .excel-entry-hint{display:none!important}
  .inventory-create-card .entry-row-tools .small{font-size:9px!important;text-align:center!important}
}
@media(max-width:370px){
  .inventory-document-form>.inventory-meta-grid{grid-template-columns:1fr!important}
  .inventory-meta-grid>*{grid-column:1/-1!important}
  table.inventory-entry-mobile tbody tr{grid-template-columns:1fr!important}
  table.inventory-entry-mobile tbody td{grid-column:1/-1!important}
}

/* v3.0.0 - toàn bộ ứng dụng vận hành bằng AJAX */
.ajax-progress-bar{position:fixed;top:0;left:0;right:0;height:3px;z-index:2000;pointer-events:none;opacity:0;background:rgba(23,107,82,.16);overflow:hidden;transition:opacity .15s ease}
.ajax-progress-bar::after{content:"";display:block;width:38%;height:100%;background:linear-gradient(90deg,#1d8a68,#65d5aa);transform:translateX(-110%)}
.ajax-progress-bar.show{opacity:1}.ajax-progress-bar.show::after{animation:ajaxProgress 1s ease-in-out infinite}
@keyframes ajaxProgress{0%{transform:translateX(-110%)}100%{transform:translateX(300%)}}
.ajax-loading-overlay{position:fixed;inset:0;z-index:1900;display:grid;place-items:center;background:rgba(245,248,250,.36);backdrop-filter:blur(1px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease,visibility .15s ease}
.ajax-loading-overlay.show{opacity:1;visibility:visible;pointer-events:auto}
.ajax-loading-card{display:flex;align-items:center;gap:11px;max-width:calc(100vw - 32px);padding:12px 16px;border:1px solid #dce6e1;border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 16px 45px rgba(19,49,39,.16);font-weight:750;color:#164e3e}
.ajax-spinner{width:21px;height:21px;border:3px solid #d7ede4;border-top-color:#176b52;border-radius:50%;animation:ajaxSpin .72s linear infinite;flex:0 0 auto}
@keyframes ajaxSpin{to{transform:rotate(360deg)}}
body.ajax-loading .main-content{pointer-events:none}
.btn.is-submitting{position:relative;opacity:.78;cursor:wait}.btn.is-submitting::before{content:"";width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ajaxSpin .65s linear infinite}
@media(max-width:780px){
  .ajax-loading-overlay{align-items:end;padding:0 12px calc(86px + env(safe-area-inset-bottom))}
  .ajax-loading-card{width:100%;justify-content:center;min-height:50px}
}

/* v3.1.0 - Trang làm việc hôm nay */
.today-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#ffffff 0%,#edf8f3 100%);border-color:#dcece5}
.today-hero h2{margin:4px 0 5px;font-size:26px}
.today-quick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.today-action{min-width:0;display:grid;grid-template-columns:48px minmax(0,1fr) 20px;align-items:center;gap:12px;padding:16px;background:#fff;border:1px solid #e4eaf0;border-radius:17px;box-shadow:0 9px 28px rgba(22,42,58,.055);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.today-action:hover{transform:translateY(-2px);border-color:#bddccd;box-shadow:0 13px 30px rgba(22,42,58,.09)}
.today-action>span{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;font-size:21px;background:#edf8f3;color:#176b52}
.today-action.export>span{background:#eaf4ff;color:#286a9d}.today-action.veneer>span{background:#fff3df;color:#9a6115}.today-action.glue>span{background:#f2edff;color:#6b4bb0}.today-action.calculate>span{background:#fceef2;color:#a53d5a}.today-action.attendance>span{background:#eef7ff;color:#2d6f9e}
.today-action strong,.today-action small{display:block}.today-action strong{font-size:15px}.today-action small{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.35}.today-action em{font-style:normal;color:#9ca8b3;font-size:22px}
.today-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.today-kpi{display:block;padding:17px 18px}
.today-kpi small,.today-kpi strong,.today-kpi span{display:block}.today-kpi small{color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.045em;font-size:11px}.today-kpi strong{font-size:23px;margin-top:8px;line-height:1.2}.today-kpi span{font-size:12px;color:#64717d;margin-top:6px;overflow-wrap:anywhere}
.today-main-grid{align-items:start}.today-side-stack{display:grid;gap:18px;min-width:0}
.today-document-list{display:grid;gap:9px}.today-document-item{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:11px;padding:11px;border:1px solid #e7ebef;border-radius:13px;background:#fbfcfd}
.today-document-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#eaf4ff;color:#286a9d;font-size:19px}.today-document-item.veneer .today-document-icon{background:#fff3df;color:#9a6115}.today-document-item.glue .today-document-icon{background:#f2edff;color:#6b4bb0}
.today-document-body{min-width:0}.today-document-body>div{display:flex;align-items:center;gap:8px;min-width:0}.today-document-body span{font-size:11px;font-weight:750;color:var(--muted);text-transform:uppercase;white-space:nowrap}.today-document-body strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-document-body p{margin:4px 0 0;color:#697581;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-document-actions{display:flex;gap:6px}
.today-incomplete-list{display:grid;gap:7px}.today-incomplete-list a{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) 16px;gap:5px 9px;align-items:center;padding:10px 11px;border:1px solid #f0dfc3;background:#fffaf1;border-radius:12px}.today-incomplete-list a>span{font-size:11px;font-weight:750;color:#93621f;text-transform:uppercase}.today-incomplete-list a>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-incomplete-list a>small{grid-column:1/3;color:#7b746b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-incomplete-list a>em{grid-column:3;grid-row:1/3;font-size:20px;font-style:normal;color:#b78b4b}
.today-all-good{display:flex;align-items:center;gap:12px;padding:15px;border-radius:13px;background:#edf8f3;color:#176b52}.today-all-good>span{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#fff;font-size:20px}.today-all-good strong,.today-all-good small{display:block}.today-all-good small{margin-top:3px;color:#557166}
.today-order-list{display:grid;gap:8px}.today-order-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #edf0f3}.today-order-list>div:last-child{border-bottom:0}.today-order-list>div>a:first-child{min-width:0}.today-order-list strong,.today-order-list small{display:block}.today-order-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-order-list small{margin-top:3px;color:var(--muted)}

@media(max-width:1100px){.today-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.today-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){
  .today-hero{align-items:flex-start;padding:16px}.today-hero h2{font-size:22px}.today-hero .btn{flex:0 0 auto;min-height:38px;padding:8px 10px;font-size:12px}
  .today-quick-actions{grid-template-columns:1fr 1fr;gap:9px}.today-action{grid-template-columns:40px minmax(0,1fr);padding:12px 10px;gap:9px;border-radius:14px}.today-action>span{width:40px;height:40px;border-radius:12px;font-size:18px}.today-action em{display:none}.today-action strong{font-size:13px}.today-action small{font-size:10.5px}
  .today-kpi-grid{display:flex;overflow-x:auto;gap:9px;padding:1px 1px 7px;scroll-snap-type:x mandatory}.today-kpi{flex:0 0 74vw;max-width:280px;scroll-snap-align:start;padding:15px}.today-kpi strong{font-size:21px}
  .today-main-grid{display:block}.today-side-stack{margin-top:12px;gap:12px}
  .today-document-item{grid-template-columns:38px minmax(0,1fr);padding:10px}.today-document-icon{width:38px;height:38px}.today-document-actions{grid-column:1/3;display:grid;grid-template-columns:1fr 1fr}.today-document-actions .btn{width:100%;min-height:38px}
}
@media(max-width:430px){.today-hero{display:block}.today-hero .btn{width:100%;margin-top:12px}.today-quick-actions{grid-template-columns:1fr 1fr}.today-action small{display:none}.today-action{min-height:67px}.today-document-body>div{display:block}.today-document-body span{display:block;margin-bottom:2px}}

/* =========================================================
   v3.2.0 - Trang chủ công ty & trình quản lý nội dung
   ========================================================= */
.auth-back-home{display:inline-flex;align-items:center;gap:6px;margin-bottom:16px;color:#25624f;font-size:13px;font-weight:800;text-decoration:none}.auth-back-home:hover{text-decoration:underline}
.homepage-admin-intro{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 28px;background:linear-gradient(135deg,#fff,#f5f0e8);border-color:rgba(23,93,72,.14)}
.homepage-admin-intro h2{margin:4px 0 7px;font-size:25px}.homepage-admin-intro p{margin:0;max-width:760px;color:#6b7771;font-size:14px}.admin-page-kicker{font-size:10px;letter-spacing:.16em;color:#98653b;font-weight:900}
.homepage-admin-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.homepage-admin-main{min-width:0}.homepage-admin-side{position:sticky;top:88px;display:grid;gap:16px}
.home-admin-section{margin-bottom:14px;background:#fff;border:1px solid #e2e9e5;border-radius:20px;overflow:hidden;box-shadow:0 8px 28px rgba(27,48,40,.045)}
.home-admin-section>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 22px;user-select:none;background:#fff}.home-admin-section>summary::-webkit-details-marker{display:none}.home-admin-section[open]>summary{border-bottom:1px solid #e8eeea;background:#fbfdfc}.home-admin-section>summary>span{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:1px 11px}.home-admin-section>summary b{grid-row:1/3;width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#eef5f1;color:#1b684f;font-size:10px}.home-admin-section>summary strong{font-size:15px;color:#26342e}.home-admin-section>summary small{font-size:11px;color:#7a8781;font-weight:500}.home-admin-section>summary>i{font-style:normal;color:#65746d;transition:.2s ease}.home-admin-section[open]>summary>i{transform:rotate(180deg)}
.home-admin-section-body{padding:22px}.home-admin-section-body>label,.home-product-editor>label,.home-gallery-editor>label{display:block;margin-top:14px}.home-admin-section-body textarea{resize:vertical;min-height:80px}.home-editor-subtitle{margin:24px 0 12px;font-size:14px}
.home-image-editor{display:grid;grid-template-columns:160px 1fr;gap:18px;align-items:center;padding:16px;border:1px dashed #cad7d0;border-radius:17px;background:#f8fbf9;margin-top:16px}.home-image-preview{height:104px;border-radius:13px;overflow:hidden;background:#edf2ef;display:grid;place-items:center;color:#87948e;font-size:11px}.home-image-preview img{width:100%;height:100%;object-fit:cover}.home-image-input label{display:block;font-weight:750;font-size:12px;color:#34443d}.home-image-input input[type=file]{display:block;width:100%;margin-top:7px;padding:9px;background:#fff;border:1px solid #d7e1dc;border-radius:10px;font-size:11px}.home-image-input small{display:block;margin-top:7px;color:#829089;font-size:10px;line-height:1.5}.check-row.compact{margin-top:9px!important;font-size:11px!important}.check-row.compact input{width:auto!important}
.home-editor-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.home-editor-card{padding:16px;border:1px solid #e1e9e5;border-radius:16px;background:#fafcfb}.home-editor-card>b,.home-gallery-editor>b{display:block;margin-bottom:9px;color:#1b684f;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.home-editor-card label{display:block;margin-top:9px}.form-grid.icon-title{grid-template-columns:76px 1fr}.home-product-editors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.home-product-editor{padding:17px;border:1px solid #e0e8e4;border-radius:18px;background:#fafcfb}.home-product-editor-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.home-product-editor-head span{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:#1d684f;color:#fff;font-size:9px}.home-product-editor-head b{font-size:13px}.home-product-editor .home-image-editor{grid-template-columns:1fr;padding:11px}.home-product-editor .home-image-preview{height:140px}.home-product-editor .home-image-input{min-width:0}
.home-gallery-editors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.home-gallery-editor{padding:16px;border:1px solid #e0e8e4;border-radius:18px;background:#fafcfb}.home-gallery-editor .home-image-editor{grid-template-columns:120px 1fr;padding:10px}.home-gallery-editor .home-image-preview{height:90px}
.homepage-visibility-card,.homepage-help-card{padding:20px}.homepage-visibility-card .card-header{margin-bottom:5px}.homepage-visibility-card>p{font-size:11px;line-height:1.5}.home-switch{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #e8eeea;cursor:pointer}.home-switch:last-child{border-bottom:0}.home-switch>span b{display:block;font-size:12px}.home-switch>span small{display:block;color:#819089;font-size:10px;margin-top:2px}.home-switch input{position:absolute;opacity:0;pointer-events:none}.home-switch>i{position:relative;flex:0 0 42px;width:42px;height:24px;border-radius:999px;background:#cad4cf;transition:.2s}.home-switch>i:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.15);transition:.2s}.home-switch input:checked+i{background:#1d7659}.home-switch input:checked+i:after{transform:translateX(18px)}.homepage-help-card h2{font-size:15px;margin:0 0 10px}.homepage-help-card ul{padding-left:18px;margin:0;color:#718079;font-size:11px;line-height:1.75}
.homepage-save-bar{position:sticky;z-index:32;bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:17px;padding:13px 15px;border:1px solid rgba(28,92,71,.17);border-radius:18px;background:rgba(255,255,255,.95);box-shadow:0 18px 55px rgba(24,55,44,.18);backdrop-filter:blur(15px)}.homepage-save-bar>div:first-child{display:flex;align-items:center;gap:11px}.homepage-save-bar>div:first-child>span{width:11px;height:11px;border-radius:50%;background:#2a8a67;box-shadow:0 0 0 6px rgba(42,138,103,.12)}.homepage-save-bar p{margin:0}.homepage-save-bar b{display:block;font-size:12px}.homepage-save-bar small{display:block;color:#7a8982;font-size:10px;margin-top:2px}
.page-homepage_admin .page-content{padding-bottom:30px}
@media(max-width:1080px){.homepage-admin-layout{grid-template-columns:1fr}.homepage-admin-side{position:static;grid-template-columns:1fr 1fr}.homepage-visibility-card{grid-row:span 2}}
@media(max-width:760px){.homepage-admin-intro{align-items:flex-start;flex-direction:column;padding:19px}.homepage-admin-intro .button-row{width:100%}.homepage-admin-intro .btn{width:100%}.homepage-admin-side{grid-template-columns:1fr}.homepage-visibility-card{grid-row:auto}.home-editor-card-grid,.home-product-editors,.home-gallery-editors{grid-template-columns:1fr}.home-image-editor,.home-gallery-editor .home-image-editor{grid-template-columns:100px 1fr}.home-product-editor .home-image-editor{grid-template-columns:100px 1fr}.home-product-editor .home-image-preview{height:90px}.home-admin-section>summary{padding:16px}.home-admin-section>summary>span{grid-template-columns:31px 1fr}.home-admin-section>summary small{white-space:nowrap;max-width:210px;overflow:hidden;text-overflow:ellipsis}.home-admin-section-body{padding:15px}.homepage-save-bar{bottom:78px;align-items:stretch;flex-direction:column;padding:12px}.homepage-save-bar>div:first-child{display:none}.homepage-save-bar .button-row{display:grid;grid-template-columns:.72fr 1.28fr;width:100%;gap:8px}.homepage-save-bar .btn{width:100%;padding-left:8px;padding-right:8px;font-size:11px}}
@media(max-width:430px){.home-image-editor,.home-product-editor .home-image-editor,.home-gallery-editor .home-image-editor{grid-template-columns:1fr}.home-image-preview{height:160px}.home-admin-section>summary small{max-width:160px}.homepage-admin-intro h2{font-size:21px}}

/* v3.3.0 - Nhập kho linh tinh */
.inventory-kpi.misc{border-top-color:#0f8c78}
.inventory-kpi.misc .icon{color:#0b7465;background:#e7f8f4}
.inventory-action.misc>span{background:#e8f8f4;color:#0d7868}
.today-action.misc>span{background:#e8f8f4;color:#0d7868}
.today-document-item.misc .today-document-icon{background:#e8f8f4;color:#0d7868}
.misc-entry-table .amount{font-weight:700;white-space:nowrap}
.misc-entry-table .misc-row-actions{white-space:nowrap}
.misc-entry-table .misc-row-actions .btn+.btn{margin-left:4px}
.misc-history-filter{align-items:end;flex-wrap:wrap}
.misc-history-filter label:nth-child(2){min-width:220px}
.misc-kpi-grid .value{font-variant-numeric:tabular-nums}
@media(max-width:760px){
  .misc-import-meta-grid{grid-template-columns:1fr 1fr!important}
  .misc-import-meta-grid label:nth-child(3),.misc-import-meta-grid label:nth-child(4){grid-column:1/-1}
  .misc-entry-table td[data-label="Tên hàng"] input{font-weight:700}
  .misc-entry-table td[data-label="Thành tiền"]{font-size:15px;font-weight:800;color:#0b6b57}
  .misc-entry-table .misc-row-actions{display:flex!important;justify-content:flex-end;gap:7px}
  .misc-history-filter{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;width:100%}
  .misc-history-filter label:nth-child(2){min-width:0}
  .misc-history-filter .btn{width:100%}
}
@media(max-width:480px){
  .misc-import-meta-grid{grid-template-columns:1fr!important}
  .misc-import-meta-grid label{grid-column:1!important}
  .misc-history-filter{grid-template-columns:1fr}
}
