:root{--bg:#f4f7fb;--ink:#14213d;--muted:#6b7280;--line:#e3e8ef;--nav:#10233f;--nav2:#1b3b67;--accent:#2f6fb3;--ok:#1e8b5b;--bad:#c93d4d;--warn:#b7791f;--soft:#f8fafc}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}aside{position:fixed;inset:0 auto 0 0;width:235px;background:var(--nav);color:#fff;padding:22px 16px;display:flex;flex-direction:column;gap:6px}.brand{display:flex;align-items:center;gap:12px;margin:0 8px 22px}.brand small{display:block;color:#9fb1c8;margin-top:3px}.logo{width:42px;height:42px;border-radius:12px;background:#fff;color:var(--nav);display:grid;place-items:center;font-weight:900}.nav{color:#bdc9d8;text-decoration:none;padding:11px 12px;border-radius:9px;font-weight:650}.nav:hover,.nav.active{background:var(--nav2);color:#fff}.version{margin-top:auto;color:#8fa3bc;font-size:12px;padding:10px;line-height:1.6}.version a{color:#cfe1f5}main{margin-left:235px;padding:28px 34px 52px}header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}h1{font-size:26px;margin:0 0 5px}header p{margin:0;color:var(--muted)}h2{font-size:17px;margin:0 0 15px}.badge{background:#e6fffa;color:#176b57;border:1px solid #b9efe3;padding:7px 10px;border-radius:999px;font-weight:800}.source-strip{background:#eef6ff;border:1px solid #cfe1f5;border-radius:10px;padding:11px 14px;margin-bottom:16px;color:#355b82}.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:18px}.card,.panel,.review-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 15px rgba(25,39,65,.04)}.card{padding:17px}.card span{color:var(--muted);display:block}.card strong{font-size:27px;margin-top:7px;display:block}.card.ok strong{color:var(--ok)}.card.bad strong{color:var(--bad)}.card.warn strong{color:var(--warn)}.panel{padding:18px;margin-bottom:18px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.table-wrap{overflow:auto}.table-wrap.tall{max-height:70vh}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{text-align:left;padding:10px 11px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;color:#657084;background:#f8fafc;position:sticky;top:0;z-index:1}.reason{white-space:normal;min-width:280px;max-width:480px;color:#5a6475}.pill{display:inline-flex;padding:3px 8px;border-radius:999px;background:#eef2f7;font-size:12px;font-weight:700}.pill.ok{background:#e7f7ef;color:var(--ok)}.pill.bad{background:#fdecee;color:var(--bad)}.pill.warn{background:#fff4db;color:var(--warn)}.pill.muted{color:#5b6473}.btn{border:0;background:var(--accent);color:#fff;padding:9px 13px;border-radius:9px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn:hover{filter:brightness(.96)}.btn:disabled{opacity:.65;cursor:wait}.btn.ghost{background:#edf2f7;color:#294765}.btn.full{width:100%}.filters{display:flex;gap:10px;margin-bottom:16px;align-items:flex-start}.filters input,.filters select,input,select{padding:10px 11px;border:1px solid #d7dde6;border-radius:8px;background:#fff;color:var(--ink);font:inherit}.filters input{min-width:280px}.clean{margin:0;padding-left:18px}.clean li{margin:9px 0;color:#4f5a6b}.statusbox{padding:16px;background:#f8fafc;border-radius:10px;color:#4f5a6b;line-height:1.6}.review-list{display:grid;gap:13px}.review-card{padding:16px}.review-top{display:flex;justify-content:space-between;gap:15px}.review-top small{display:block;color:var(--muted);margin-top:4px}.review-card p{color:#4f5a6b}.review-meta{font-size:12px;color:#7a8493;margin-bottom:12px}.review-card form{display:flex;gap:8px;flex-wrap:wrap}.review-card form input{min-width:230px}.empty{padding:30px;background:#fff;border:1px dashed #cad2de;border-radius:14px;color:#6d7786}.narrow{max-width:860px}.danger-note{margin-top:15px;color:#8d6515;background:#fff7df;border-radius:9px;padding:12px}.alert{padding:12px 14px;border-radius:9px;margin-bottom:14px}.goodbox{background:#e7f7ef;border:1px solid #bfe8d5;color:#236c50}.badbox{background:#fdecee;border:1px solid #f3c0c6;color:#9d2331}.readonly{padding:12px;background:#f3f5f8;border-radius:8px;color:#6b7280}.import-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.import-grid label,.stack label{font-weight:650;color:#374151}.import-grid input{display:block;width:100%;margin-top:7px}.import-grid button{grid-column:1/-1}.stack{display:grid;gap:10px}.ac-wrap{position:relative}.ac-menu{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #dce3ec;border-radius:10px;box-shadow:0 12px 28px rgba(30,48,80,.14);z-index:50;max-height:300px;overflow:auto}.ac-menu.open{display:block}.ac-item{padding:9px 11px;cursor:pointer;border-bottom:1px solid #f1f4f8}.ac-item:hover{background:#eef6ff}.login-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#eef4fb,#f8fafc)}.login-card{width:min(420px,92vw);background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px;box-shadow:0 18px 45px rgba(30,48,80,.12);text-align:center}.login-logo{width:58px;height:58px;background:var(--nav);color:#fff;border-radius:14px;display:grid;place-items:center;margin:0 auto 14px;font-weight:900;font-size:18px}.login-card h1{margin:0 0 4px}.login-card p{margin:0 0 22px;color:var(--muted)}.login-card form{display:grid;gap:14px;text-align:left}.login-card label{font-weight:650}.login-card input{display:block;width:100%;margin-top:7px}.login-card small{display:block;margin-top:18px;color:#8a93a1}code{background:#f0f3f7;padding:2px 5px;border-radius:5px}@media(max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.import-grid{grid-template-columns:1fr}}@media(max-width:760px){aside{position:static;width:auto;flex-direction:row;overflow:auto}.brand,.version{display:none}.nav{white-space:nowrap}main{margin:0;padding:18px}.cards{grid-template-columns:1fr 1fr}.filters{flex-direction:column}.filters input{min-width:0;width:100%}.ac-wrap{width:100%}}

/* V3 practical UI */
.cards.three{grid-template-columns:repeat(3,1fr)}
.statusbox.compact{padding:10px 13px;margin:-4px 0 14px}
.muted-text{color:var(--muted);font-size:12px}
.inline-upload{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.inline-upload input{max-width:330px}
.mapping-form{display:flex;gap:8px;min-width:440px}.mapping-form select{min-width:300px}
.review-done{background:#edf8f2;border:1px solid #caeadb;padding:10px;border-radius:8px;color:#326a51}
.flow{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.flow span,.flow b{padding:10px 14px;background:#f4f7fb;border-radius:9px}
.panel small{color:var(--muted)}
@media(max-width:1100px){.cards.three{grid-template-columns:1fr}.mapping-form{min-width:0;flex-direction:column}.mapping-form select{min-width:0}}
.pagination{display:flex;gap:7px;align-items:center;justify-content:flex-end;padding-top:14px}.page-btn{padding:7px 10px;border:1px solid var(--line);border-radius:7px;text-decoration:none;color:#315a85;background:#fff}.page-btn.active{background:var(--accent);color:#fff}.pagination span{color:var(--muted);margin-left:6px}

/* V3.2.2 UX hotfix: explicit search, no live-submit */
.search-filter{align-items:flex-start}
.search-filter .ac-wrap{min-width:280px}
.mapping-search{display:flex;gap:8px;align-items:flex-start}
.mapping-search .ac-wrap{min-width:260px}
.search-input{width:100%}
@media(max-width:760px){.mapping-search{width:100%;flex-direction:column}.mapping-search .ac-wrap{width:100%;min-width:0}.mapping-search .btn{width:100%}}

/* V3.2.3 Rule hotfix: PRIMARY / SUPPORT order assignment */
.check-grid{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:8px 14px;margin-top:8px}.check-line{font-weight:500!important;display:flex;align-items:center;gap:7px}.check-line input{width:auto;margin:0}.stack input,.stack select{width:100%}@media(max-width:760px){.check-grid{grid-template-columns:1fr}}
/* V3.2.5 Declaration / Evidence Review */
.evidence-box{margin:12px 0 14px;border:1px solid #dbe5f0;border-radius:10px;background:#f9fbfd;overflow:hidden}.evidence-box summary{cursor:pointer;font-weight:800;padding:11px 13px;background:#eef5fc;color:#294765}.evidence-source{padding:11px 13px;display:grid;gap:5px;color:#4f5a6b;border-bottom:1px solid #e4eaf1}.evidence-raw{white-space:pre-wrap;word-break:break-word}.evidence-candidates{display:grid;gap:8px;padding:11px 13px}.evidence-candidate{display:flex;gap:10px;padding:10px;border:1px solid #dde5ee;border-radius:9px;background:#fff;cursor:pointer}.evidence-candidate:hover{border-color:#9fbadd;background:#fbfdff}.evidence-candidate.disabled{opacity:.58;cursor:not-allowed}.evidence-candidate>input{margin-top:4px;min-width:auto}.evidence-candidate-body{display:grid;gap:3px;min-width:0}.evidence-candidate-body small{color:#718096}.evidence-confirm-row{display:flex;gap:8px;padding:0 13px 10px;flex-wrap:wrap}.evidence-confirm-row input{min-width:310px;flex:1}.evidence-warning{display:block;padding:0 13px 12px;color:#8a6514;line-height:1.45}.evidence-none{margin:11px 13px;padding:10px;border-radius:8px;background:#fff7df;color:#8a6514}.review-final-decision{border-top:1px solid #e5eaf0;padding-top:12px;margin-top:12px}.review-final-decision>b{display:block;margin-bottom:8px}.review-decision-form{display:flex;gap:8px;flex-wrap:wrap}

/* V3.2.8 release-test safety & one-zone import */
.drop-zone{display:grid;min-height:200px;box-sizing:border-box;align-content:center;gap:10px;place-items:center;text-align:center;padding:24px;border:2px dashed #a8bdd6;border-radius:14px;background:#f8fbff;cursor:pointer;color:#355b82}.drop-zone:hover{background:#eef6ff}.drop-zone span{font-weight:500;color:var(--muted)}.drop-zone input{width:100%;max-width:520px;background:#fff}.import-checklist{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:12px;background:#f8fafc;border-radius:10px}.user-inline{display:flex;gap:6px;align-items:center;min-width:720px}.user-inline input,.user-inline select{min-width:140px}.assignment-loader{margin-top:14px}.actions{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:760px){.import-checklist{grid-template-columns:1fr}.user-inline{min-width:0;flex-direction:column;align-items:stretch}}

/* ==================== V3.2.8 RC2 UI/UX ==================== */
.sidebar-nav{display:flex;flex-direction:column;gap:7px;min-height:0;overflow:auto;padding-right:2px}.nav-group{border-top:1px solid rgba(255,255,255,.06);padding-top:6px}.nav-group:first-child{border-top:0;padding-top:0}.nav-group-toggle{width:100%;border:0;background:transparent;color:#8fa6c1;display:flex;align-items:center;justify-content:space-between;padding:7px 10px 5px;font:inherit;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.055em;cursor:pointer}.nav-group-toggle:hover{color:#d7e4f2}.nav-group-items{display:grid;gap:3px;max-height:520px;overflow:hidden;transition:max-height .18s ease,opacity .18s ease}.nav-group.collapsed .nav-group-items{max-height:0;opacity:0}.nav-group.collapsed .nav-chevron{transform:rotate(-90deg)}.nav-chevron{transition:transform .18s ease}.nav{display:flex;align-items:center;gap:9px}.nav-icon{width:18px;text-align:center;opacity:.82;font-size:13px}
.source-summary{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr);gap:12px;margin-bottom:16px}.source-card{background:#eef6ff;border:1px solid #cfe1f5;border-radius:12px;padding:12px 14px;min-width:0}.source-card span{display:block;color:#59718d;font-size:12px;margin-bottom:5px}.source-card strong{display:block;color:#294f76;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rule-meta{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px;margin-bottom:18px}.rule-meta>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}.rule-meta span{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}.rule-meta b{font-size:15px}
.actions{display:flex;gap:8px;flex-wrap:wrap}.assignment-edit-highlight{animation:rc2Flash 1.3s ease}@keyframes rc2Flash{0%{box-shadow:0 0 0 4px rgba(47,111,179,.25)}100%{box-shadow:0 0 0 0 rgba(47,111,179,0)}}
.table-wrap{position:relative}.table-tools{display:flex;justify-content:flex-end;gap:6px;padding:0 0 7px;position:sticky;left:0}.table-tool-btn{border:1px solid #d7dde6;background:#fff;color:#355b82;border-radius:7px;padding:6px 9px;font-size:12px;font-weight:700;cursor:pointer}.table-tool-btn:hover{background:#eef6ff}.resizable-table{table-layout:fixed;min-width:100%;width:max-content}.resizable-table th{position:sticky}.col-resizer{position:absolute;right:-4px;top:0;width:8px;height:100%;cursor:col-resize;z-index:5;touch-action:none}.col-resizer:after{content:"";position:absolute;left:3px;top:22%;bottom:22%;width:1px;background:#cbd5e1;opacity:.45}.col-resizer:hover:after,.col-resizer.dragging:after{background:#2f6fb3;opacity:1;width:2px}.table-resizing,.table-resizing *{cursor:col-resize!important;user-select:none!important}.pin-left{position:sticky!important;left:0!important;z-index:3!important;background:#fff}.pin-right{position:sticky!important;right:0!important;z-index:3!important;background:#fff}.resizable-table thead .pin-left,.resizable-table thead .pin-right{z-index:6!important;background:#f8fafc}.pin-left:after,.pin-right:before{content:"";position:absolute;top:0;bottom:0;width:6px;pointer-events:none}.pin-left:after{right:-6px;box-shadow:4px 0 6px rgba(20,33,61,.06)}.pin-right:before{left:-6px;box-shadow:-4px 0 6px rgba(20,33,61,.06)}
@media(max-width:1100px){.source-summary{grid-template-columns:1fr 1fr}.source-card:last-child{grid-column:1/-1}.rule-meta{grid-template-columns:1fr 1fr}}
@media(max-width:760px){aside{display:block;padding:10px 12px}.sidebar-nav{display:flex;flex-direction:row;overflow:auto;gap:8px}.nav-group{min-width:max-content;border:0;padding:0}.nav-group-toggle{display:none}.nav-group-items{display:flex;max-height:none!important;opacity:1!important}.nav{white-space:nowrap;padding:9px 11px}.nav-icon{display:none}.source-summary{grid-template-columns:1fr}.source-card:last-child{grid-column:auto}.rule-meta{grid-template-columns:1fr}.table-tools{justify-content:flex-start}.table-tool-btn{white-space:nowrap}.panel{overflow:hidden}}

/* RC2 RBAC Stage 1 */
.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.permission-role-card{border:1px solid #d9e1e8;border-radius:14px;padding:16px;background:#f8fbfe;min-width:0}
.permission-role-card h3{margin:0 0 6px;color:#102a4c}
.permission-role-card p{margin:0 0 10px;color:#5c6b7f;line-height:1.45}
.permission-role-card ul{margin:0;padding-left:18px;max-height:250px;overflow:auto}
.permission-role-card li{margin:5px 0;line-height:1.35}
.admin-policy .panel{border-top:3px solid #c57a00}
.user-admin-grid{align-items:start}
@media(max-width:1000px){.permission-grid{grid-template-columns:1fr}.user-admin-grid{grid-template-columns:1fr}}

/* RC2 RBAC2: flexible per-account permissions */
.cell-note{display:block;margin-top:4px;color:var(--muted);font-size:11px;white-space:normal;max-width:360px;line-height:1.35}
#permission-editor table{min-width:1050px}
#permission-editor select{min-width:190px}
#permission-editor td:nth-child(1){white-space:normal;min-width:260px}
#permission-editor td:nth-child(5){white-space:normal;min-width:180px;color:#5c6b7f}
#permission-editor .statusbox{margin-bottom:12px}
@media(max-width:1100px){#permission-editor table{min-width:920px}}
.uat-banner{background:#fff4ce;color:#6b4d00;border-bottom:1px solid #e6c65c;padding:10px 18px;text-align:center;font-size:13px;letter-spacing:.1px}
.uat-login-note{background:#fff4ce;color:#6b4d00;border:1px solid #e6c65c;border-radius:10px;padding:10px 12px;margin:10px 0 14px;line-height:1.45}

.customer-file-drop {
  display: grid;
  gap: 6px;
  padding: 10px 12px;
  border: 1px dashed #6595c4;
  border-radius: 8px;
  cursor: pointer;
}
.customer-file-drop input[type="file"] {
  width: 100%;
  cursor: pointer;
}
.customer-file-drop:focus-within {
  outline: 2px solid #2f73b9;
  outline-offset: 2px;
}

.trips-table th {
  vertical-align: middle;
  text-align: center;
  white-space: nowrap;
}
.trips-table th:is(:nth-child(8), :nth-child(10), :last-child) {
  text-align: center;
}
.panel:has(.trips-table){margin-bottom:0}.trips-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding-top:8px}

@media (min-width: 901px) {
  main:has(.trips-table) {
    height: 100dvh;
    display: flex;
    flex-direction: column;
    padding-bottom: 12px;
  }
  .panel:has(.trips-table) {
    display: flex;
    flex-direction: column;
    min-height: 0;
    flex: 1;
  }
  .table-wrap.tall:has(> .trips-table) {
    max-height: none;
    min-height: 0;
    flex: 1;
  }
  .trips-footer {
    flex-shrink: 0;
  }
}

.review-card > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  list-style: none;
  cursor: pointer;
}
.review-card > summary::-webkit-details-marker { display: none; }
.review-card > summary > .review-top { flex: 1; }
.review-card > summary > .muted { display: none; }
.review-card > summary::after {
  content: "Xem chi ti\1ebf t";
  color: var(--accent);
  font-weight: 700;
  white-space: nowrap;
}
.review-card[open] > summary::after { content: "Thu g\1ecd n"; }
.trips-table td.reason { min-width: 0; width: 180px; } .trip-note input { width: 160px; min-width: 0; }
.review-columns,.review-card > summary.review-columns{display:grid;grid-template-columns:1fr 1fr 1fr 2fr 1fr 1fr;gap:10px;padding:10px;overflow-wrap:anywhere}.review-card > summary.review-columns::after{display:none}

.review-card > summary > .review-top {
  min-width: 0;
  flex-wrap: wrap;
}
.review-card > summary > .review-top > span:not(.pill),
.review-columns > * {
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
}
.review-columns,.review-card > summary.review-columns{text-align:left;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,2fr) minmax(0,1fr) minmax(0,1fr)} .review-group{padding-inline:0}.review-group > .review-card{padding-inline:0;border-inline:0}

.review-group > summary {
  padding-inline: 12px;
  text-align: left;
}
.review-group > summary > .review-top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 12px;
  margin: 0;
}
.review-group > summary > .review-top > span:not(.pill) {
  grid-row: 2;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.review-group > summary > .review-top > .pill {
  grid-column: 2;
  grid-row: 1;
}
.review-card > summary.review-columns > span:nth-child(4),
.review-card > summary.review-columns > span:nth-child(5) {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

/* Shared review data region keeps headers and horizontal scrolling together. */
.review-data-panel{min-width:0;max-width:100%;padding:12px}
.review-table-scroll{width:100%;max-width:100%;max-height:70vh;overflow:auto;scrollbar-gutter:stable;border:1px solid var(--line);border-radius:10px}
.review-table-content{min-width:1420px;padding:0 10px 12px}
.review-table-head{position:sticky;top:0;z-index:4;background:#f8fafc;border-bottom:1px solid var(--line)}
.review-table-content .review-columns,.review-table-content .review-card>summary.review-columns{grid-template-columns:140px 240px 160px minmax(300px,1fr) 220px 140px;align-items:start}
.review-table-content .review-group{margin-top:10px}
.dashboard-link{color:inherit;text-decoration:none;display:block}
.dashboard-link:hover,.dashboard-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.dashboard-link small{display:block;margin-top:8px;color:var(--accent)}

/* SQC shared table and brand conventions. */
th{text-align:center;vertical-align:middle}
.review-column-head>b{text-align:center;align-self:center}
.review-table-content .review-column-head{align-items:center}
.brand{align-items:center}.brand-image{width:48px;height:48px;object-fit:contain;flex:0 0 48px;border-radius:12px}.brand b{font-size:17px}.brand small{line-height:1.45}
.audit-table td:nth-child(1){text-align:center}
.audit-table td:nth-child(6),.audit-table td:nth-child(7){text-align:left;white-space:normal;min-width:240px}
.trips-table td:nth-child(1){text-align:center}
.trips-table td:nth-child(8){text-align:right}
.mapping-workflow{background:#f6faff}.mapping-workflow ol{display:flex;gap:28px;flex-wrap:wrap;padding-left:20px}.mapping-workflow li{max-width:300px;line-height:1.55}
.mapping-source-refs{max-width:360px;white-space:normal;overflow-wrap:anywhere}
.mapping-form{flex-wrap:wrap;align-items:center}.mapping-form input{max-width:230px;min-width:150px}
.list-footer{flex-wrap:wrap;gap:12px}.empty{padding:20px;color:var(--muted)}

/* Filters wrap within the available app area on narrow windows. */
main{min-width:0}
.filters{flex-wrap:wrap;max-width:100%}
.filters>.ac-wrap{flex:1 1 240px;min-width:0;max-width:100%}
.filters input{min-width:0;max-width:100%}
.filters select{max-width:100%}
.panel-head{flex-wrap:wrap}

.sidebar-nav>.nav{display:flex;align-items:center;gap:10px;margin-bottom:8px}

/* SQC alignment contract confirmed 04/11/2026. */
td.cell-datetime{ text-align:center;vertical-align:middle }
.employee-summary-table td:first-child{text-align:left}
.employee-summary-table td:nth-child(n+2){text-align:center}

.employee-master-table td:nth-child(1),.employee-master-table td:nth-child(2),.employee-master-table td:nth-child(4),.employee-master-table td:nth-child(5){text-align:center}

/* Identity cells share a vertical center; long explanations keep their natural height. */
tbody td{vertical-align:middle}
td.reason{vertical-align:top}
.trips-table td:nth-child(-n+7){vertical-align:middle}
.review-table-content .review-card>summary.review-columns{align-items:center}
.review-top{align-items:center}

/* Shared table rhythm: subtle headers, dividers and natural multiline rows. */
table{line-height:1.45}
th{background:#edf3f9;color:#36516f;font-weight:750;border-bottom:2px solid #cbd9e8;box-shadow:inset -1px 0 0 #dce5ef}
th:last-child{box-shadow:none}
th,td{padding:11px 12px}
tbody tr:nth-child(even){background:#fbfcfe}
tbody tr:hover{background:#f3f7fc}
td.reason{vertical-align:middle}
.review-column-head{background:#edf3f9;border-bottom:2px solid #cbd9e8;color:#36516f;line-height:1.45}
.review-column-head>b{padding:0 8px;font-size:12px;border-right:1px solid #dce5ef}
.review-column-head>b:last-child{border-right:0}
.review-group>summary{padding:12px 14px;align-items:center;line-height:1.45;gap:12px}
.review-group>summary>.review-top{display:grid;grid-template-columns:minmax(200px,auto) minmax(0,1fr) auto;align-items:center;gap:16px}
.review-group>summary>.review-top>span:not(.pill){grid-row:auto;grid-column:auto;margin:0;line-height:1.45}
.review-group>summary>.review-top>.pill{grid-column:auto;grid-row:auto;justify-self:end}
.review-group>summary>.review-top>b{line-height:1.45}
.review-card>summary.review-columns{line-height:1.45}
.review-card>summary.review-columns>*{margin-block:0}
.review-group>summary>.review-top>span:not(.pill),
.review-card>summary.review-columns>span:nth-child(4),
.review-card>summary.review-columns>span:nth-child(5){display:block;overflow:visible;-webkit-line-clamp:unset}

/* Group summaries use the same six columns as their headers and order rows. */
.review-table-content .review-group>summary.review-group-columns{padding:10px;gap:10px}
.review-order-count{display:block;margin-top:4px;color:var(--muted);font-size:12px;font-weight:500}
.review-group-toggle{color:var(--accent);font-size:12px;font-weight:650}
.review-group-toggle::before{content:"Xem chi tiết"}
.review-group[open]>summary .review-group-toggle::before{content:"Thu gọn"}
.review-group-columns>span{border-left:1px solid #e8eef4;padding-left:8px}
/* Returned warehouse feedback is separate from the manager's editable trip note. */
.feedback-summary{display:flex;align-items:center;gap:12px 22px;flex-wrap:wrap;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:12px}
.feedback-summary a{color:var(--accent);font-weight:700;text-decoration:none}
.feedback-import{margin-bottom:12px;color:var(--muted)}
.feedback-import>summary{cursor:pointer;font-weight:650}
.feedback-import form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:12px 0}
.feedback-import label{display:grid;gap:6px}
.trip-feedback{min-width:190px;max-width:300px;margin-bottom:8px;font-size:12px;line-height:1.5}
.trip-feedback>b{color:#526479;font-size:11px}.trip-feedback p{margin:3px 0;white-space:pre-wrap;overflow-wrap:anywhere}

/* Delivery quantity and DMS points are separate measures. */
.delivery-trip-list th{text-align:center}.delivery-trip-list td:nth-child(8),.delivery-trip-list td:nth-child(9),.delivery-trip-list td:nth-child(11),.delivery-trip-list td:last-child{text-align:center}.delivery-trip-list td:nth-child(10){text-align:left}

/* Review list: keep warehouse evidence inside the popup and distinguish DMS points. */
.delivery-trip-list .trip-feedback{display:none}
.dms-points{display:inline-block;min-width:38px;padding:4px 8px;border-radius:6px;font-weight:700;font-variant-numeric:tabular-nums;text-align:center}
.dms-points.is-negative{color:#a71d2a;background:#fff0f1;border:1px solid #f3c9cf}
.dms-points.is-pending{color:#805500;background:#fff6d9;border:1px solid #ecd691}
.dms-points.is-neutral{color:#64748b;background:#f1f5f9}
.dms-points.is-positive{color:#17633c;background:#eaf7ee;border:1px solid #c8e8d3}

/* Detail cells scroll with the other columns; only the header stays vertically. */
.delivery-trip-list th:last-child,.delivery-trip-list td:last-child{min-width:112px}
.delivery-trip-list td:last-child .btn{white-space:normal;min-width:86px}

/* Review register: one order per row, with separate source identifiers. */
.review-table-content.review-register{min-width:0;padding:0}
.review-register>[hidden]{display:none!important}
.review-register-table{table-layout:fixed;min-width:1510px;width:100%;white-space:normal}
.review-register-table th{text-align:center;vertical-align:middle;border-right:1px solid #e8eef4}
.review-register-table td{vertical-align:middle;line-height:1.45;border-right:1px solid #edf1f6;overflow-wrap:anywhere}
.review-register-table tbody tr:hover{background:#f8fbff}
.review-register-table tr.review-trip-start:not(:first-child) td{border-top:2px solid #dce5ef}
.review-register-table .review-col-date{width:100px;text-align:center;font-variant-numeric:tabular-nums}
.review-register-table .review-col-lgh{width:125px}
.review-register-table .review-col-order{width:105px}
.review-register-table .review-col-pxk{width:100px}
.review-register-table .review-col-code{width:155px}
.review-register-table .review-col-customer{width:220px}
.review-register-table .review-col-employee{width:115px}
.review-register-table .review-col-issue{width:175px}
.review-register-table .review-col-note{width:205px;color:#5a6475}
.review-register-table .review-col-action{width:130px;text-align:center}
.review-register-table .review-col-action .btn{white-space:normal;min-width:88px}
.review-note-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.review-pending-result{color:#805500}

/* Menu đã duyệt 09/11/2026: chức năng trực tiếp theo nhóm, Cấu hình theo quyền. */
.sidebar-nav{gap:4px;flex:1}.sidebar-nav>.nav{margin-bottom:0}.nav{padding:9px 11px;font-weight:600}.nav.active{background:#2d5c8e}.nav-group{margin-top:5px;padding-top:7px;border-top-color:#334864}.nav-group-toggle{padding:9px 10px;color:#a9bed8}.nav-group-items{max-height:none;overflow:visible}.nav-group-items[hidden]{display:none!important}.nav:focus-visible,.nav-group-toggle:focus-visible{outline:2px solid #a8cfff;outline-offset:-2px}
.section-links{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.section-link{display:inline-flex;align-items:center;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#355b82;text-decoration:none;font-weight:600}.section-link:hover,.section-link.active{background:#eaf2fc;border-color:#8aafd6;color:#1f568c}.configuration-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.configuration-card{display:flex;flex-direction:column;margin:0;text-decoration:none;color:var(--ink);gap:10px}.configuration-card:hover{border-color:#8aafd6}.configuration-card h2,.configuration-card p{margin:0}.configuration-card p{color:var(--muted);line-height:1.5}.configuration-card>span{color:#2866a0;margin-top:auto}
@media(max-width:760px){aside{display:block;overflow:visible}.sidebar-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;gap:4px 8px}.nav-group{grid-column:1/-1;min-width:0;border-top:1px solid #334864;padding-top:6px}.nav-group-toggle{display:flex}.nav-group-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px}.nav{white-space:normal;min-height:42px}.nav-icon{display:block}.configuration-grid{grid-template-columns:1fr}.section-link{min-height:44px}}

/* Shared password eye: each field keeps its own visible/hidden state. */
.sq-password-control{display:block;position:relative;width:100%;min-width:0}
.sq-password-control>input{display:block;width:100%;min-height:44px;padding-right:52px}
.login-card .sq-password-control{margin-top:7px}
.login-card .sq-password-control>input{margin-top:0}
.sq-password-toggle{position:absolute;right:1px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:44px;height:42px;padding:0;border:0;border-radius:7px;background:transparent;color:#355b82;cursor:pointer;flex:none}
.sq-password-toggle:hover{background:#edf3fb}
.sq-password-toggle:focus-visible{outline:3px solid #2e70b4;outline-offset:1px}
.sq-password-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}

.account-instance{font-size:12px;font-weight:750;color:#805600!important;background:#fff5d9;border:1px solid #ead49b;padding:8px;border-radius:7px}
