:root, html[data-theme="beige"]{
  --navy:#3a2a1c;--navy2:#2a1d14;--navy3:#5a4030;--navy4:#6d5140;
  --white:#f7f1e6;--bg:#e4d3b8;--bg2:#d4c09e;--card:#f4ead8;
  --border:#c4ad8c;--border2:#ad9470;
  --text:#2a1c12;--muted:#6b5644;--light:#a08c74;
  --red:#8a3328;--green:#2f5a38;--amber:#8a6230;
  --gold:#8d6a32;--accent:#6d5132;
  --cong-bg:#edd9a4;--cong-fg:#5a3e10;
  --lon-bg:#e4c09a;--lon-fg:#6a3414;
  --latvat-bg:#ddd2c2;--latvat-fg:#4e463e;
  --tt-bg:#d5e0c4;--tt-fg:#243f28;
  --on:#f7f1e6;--on-dim:rgba(247,241,230,.72);--on-faint:rgba(247,241,230,.42);
  --chrome-line:rgba(247,241,230,.16);--chrome-hover:rgba(247,241,230,.08);
  --mark:#e6d3a3;--debt:#f0c2b4;
  --band-red:#f0c2b4;--band-green:#c9e2c4;--band-amber:#f0dd9a;--total-fg:#f0dd9a;
  --sum:#0b3a82;--sum-bg:#d6e4f5;--hd:#fbf6e4;
  --hd-row:#fbf6e4;--hd-row-h:#f3ead0;--nohd:#fbe7b0;--nohd-h:#f5d88a;--nohd-edge:#c8902a;
  --stripe:rgba(212,192,158,.55);--hover:rgba(141,106,50,.12);--chuyen:#f0d0c6;
  --desk:#d4c4a8;--home1:#efe2cc;--home2:#e0ccae;--glow:rgba(141,106,50,.22);
  --overlay:rgba(42,29,20,.5);--paper:#fffdf8;--ok:#2f5a38;
  --sidebar-w:280px;--radius:8px;--radius2:12px;
}
html[data-theme="mono"]{
  --navy:#111111;--navy2:#000000;--navy3:#2a2a2a;--navy4:#3a3a3a;
  --white:#ffffff;--bg:#f3f3f3;--bg2:#e6e6e6;--card:#ffffff;
  --border:#cfcfcf;--border2:#b5b5b5;
  --text:#111111;--muted:#5c5c5c;--light:#8a8a8a;
  --red:#222222;--green:#333333;--amber:#444444;
  --gold:#222222;--accent:#111111;
  --cong-bg:#f4f4f4;--cong-fg:#111111;
  --lon-bg:#e2e2e2;--lon-fg:#111111;
  --latvat-bg:#f7f7f7;--latvat-fg:#444444;
  --tt-bg:#dedede;--tt-fg:#111111;
  --on:#ffffff;--on-dim:rgba(255,255,255,.78);--on-faint:rgba(255,255,255,.45);
  --chrome-line:rgba(255,255,255,.16);--chrome-hover:rgba(255,255,255,.08);
  --mark:#ffffff;--debt:#ffffff;
  --band-red:#ffffff;--band-green:#d8d8d8;--band-amber:#eeeeee;--total-fg:#ffffff;
  --sum:#111111;--sum-bg:#e8e8e8;--hd:#ececec;
  --hd-row:#ffffff;--hd-row-h:#f2f2f2;--nohd:#dcdcdc;--nohd-h:#cdcdcd;--nohd-edge:#111111;
  --stripe:rgba(0,0,0,.04);--hover:rgba(0,0,0,.06);--chuyen:#ececec;
  --desk:#e5e5e5;--home1:#f7f7f7;--home2:#e8e8e8;--glow:rgba(0,0,0,.06);
  --overlay:rgba(0,0,0,.55);--paper:#ffffff;--ok:#222222;
  --sidebar-w:280px;--radius:8px;--radius2:12px;
}
html[data-theme="navy"]{
  --navy:#071833;--navy2:#041026;--navy3:#12315f;--navy4:#1a4178;
  --white:#ffffff;--bg:#f3f6fb;--bg2:#e4ebf5;--card:#ffffff;
  --border:#d3deee;--border2:#b7c7de;
  --text:#0e1c33;--muted:#5a6d86;--light:#8aa0bb;
  --red:#9b2c2c;--green:#1f6b45;--amber:#8a5a12;
  --gold:#d6e4f7;--accent:#12315f;
  --cong-bg:#e7eef8;--cong-fg:#12315f;
  --lon-bg:#d9e3f2;--lon-fg:#0e1c33;
  --latvat-bg:#eef2f7;--latvat-fg:#4d5e74;
  --tt-bg:#e5f2ea;--tt-fg:#1f6b45;
  --on:#ffffff;--on-dim:rgba(255,255,255,.78);--on-faint:rgba(255,255,255,.42);
  --chrome-line:rgba(255,255,255,.14);--chrome-hover:rgba(255,255,255,.08);
  --mark:#ffffff;--debt:#f3c7c7;
  --band-red:#f3c7c7;--band-green:#c9ead6;--band-amber:#f6e3b0;--total-fg:#f6e3b0;
  --sum:#0b3a82;--sum-bg:#d6e4f5;--hd:#fbf6e4;
  --hd-row:#fbf6e4;--hd-row-h:#f3ead0;--nohd:#fbe7b0;--nohd-h:#f5d88a;--nohd-edge:#c8902a;
  --stripe:rgba(18,49,95,.05);--hover:rgba(18,49,95,.07);--chuyen:#f8e4e4;
  --desk:#d5deea;--home1:#f7f9fc;--home2:#e7eef8;--glow:rgba(18,49,95,.12);
  --overlay:rgba(4,16,38,.55);--paper:#ffffff;--ok:#1f6b45;
  --sidebar-w:280px;--radius:8px;--radius2:12px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;}
html{zoom:1.1;}
body{font-family:Roboto,"Segoe UI",system-ui,sans-serif;font-size:13px;color:var(--text);background:var(--bg);line-height:1.35;text-transform:uppercase;}
button,input,select,textarea{font-family:inherit;text-transform:inherit;}
input[type="password"],#lg-user,#lg-pass{text-transform:none;}
.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;}
.center{text-align:center;}
.wrap{overflow-wrap:break-word;word-break:break-word;}
.up{text-transform:uppercase;}
.app{display:flex;height:calc(100vh / 1.1);}
.sidebar{width:var(--sidebar-w);background:var(--navy);color:var(--on);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;}
.sidebar-header{padding:10px 12px 8px;border-bottom:1px solid var(--chrome-line);cursor:pointer;}
.sidebar-header .co{font-size:10px;font-weight:700;letter-spacing:.16em;color:var(--on-dim);margin-bottom:2px;}
.sidebar-header h1{font-size:14px;font-weight:900;letter-spacing:.04em;line-height:1.25;color:var(--on);}
.sidebar-nav{flex:1;overflow-y:auto;padding:6px 0;}
.nav-group{margin-bottom:10px;}
.nav-group-label{font-size:10px;font-weight:700;letter-spacing:.16em;color:var(--on-faint);padding:8px 12px 3px;}
.nav-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:6px 12px;border:none;border-left:3px solid transparent;background:transparent;color:var(--on-dim);font-size:12px;font-weight:700;letter-spacing:.03em;cursor:pointer;text-align:left;line-height:1.25;text-transform:uppercase;}
.nav-item:hover{background:var(--chrome-hover);color:var(--on);}
.nav-item.active{border-left-color:var(--mark);background:var(--chrome-hover);color:var(--on);}
.nav-item .dot{width:10px;height:10px;border-radius:3px;flex-shrink:0;}
.nav-item .debt{font-size:11px;font-weight:600;color:var(--debt);}
.nav-item .debt.zero{color:var(--on-faint);}
.sidebar-footer{border-top:1px solid var(--chrome-line);padding:8px 12px;display:flex;flex-direction:column;gap:6px;}
.sidebar-footer button{display:flex;align-items:center;gap:6px;width:100%;padding:6px 10px;background:var(--chrome-hover);border:1px solid var(--chrome-line);border-radius:var(--radius);color:var(--on-dim);font-size:11px;font-weight:700;letter-spacing:.05em;cursor:pointer;text-transform:uppercase;}
.sidebar-footer button:hover{background:var(--chrome-hover);color:var(--on);}
.sidebar-footer button.on{color:var(--on);border-color:var(--mark);}
.main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;background:var(--bg);}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:var(--card);border-bottom:1px solid var(--border);flex-shrink:0;gap:8px;}
.topbar .label{font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;}
.topbar .title{font-size:15px;font-weight:900;letter-spacing:.03em;color:var(--navy);text-transform:uppercase;}
.topbar-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.content{flex:1;overflow-y:auto;padding:12px;}
.btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:var(--radius);font-size:11px;font-weight:700;letter-spacing:.04em;cursor:pointer;border:none;text-transform:uppercase;line-height:1.2;}
.btn-primary{background:var(--navy3);color:var(--on);}
.btn-primary:hover{background:var(--navy);}
.btn-outline{background:transparent;color:var(--navy3);border:1.5px solid var(--navy3);}
.btn-outline:hover{background:rgba(109,83,64,.06);}
.btn-danger{background:var(--red);color:#fff;}
.btn-ghost{background:transparent;color:var(--muted);}
.btn-ghost:hover{background:var(--bg2);color:var(--text);}
.btn-sm{padding:3px 8px;font-size:10px;}
.btn-icon{padding:2px 4px;border-radius:3px;background:transparent;border:none;cursor:pointer;color:var(--muted);font-size:13px;}
.btn-icon:hover{background:var(--bg2);color:var(--text);}
.btn:disabled{opacity:.55;cursor:wait;}
.filter-bar{display:flex;gap:6px;align-items:center;margin-bottom:8px;flex-wrap:wrap;}
.filter-bar select,.filter-bar input{padding:5px 8px;border:1.5px solid var(--border);border-radius:var(--radius);font-size:12px;font-weight:700;background:var(--card);color:var(--text);letter-spacing:.03em;text-transform:uppercase;}
.filter-bar select:focus,.filter-bar input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(166,133,74,.18);}
.card{background:var(--card);border-radius:var(--radius2);border:1px solid var(--border);overflow:visible;margin-bottom:8px;}
.card-header{padding:6px 10px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;}
.card-header h3{font-size:12px;font-weight:900;letter-spacing:.05em;color:var(--navy);text-transform:uppercase;}
.tbl-print-bar{display:flex;justify-content:flex-end;padding:6px 8px 0;}
.card-header .btn-print{margin-left:auto;}
.ke-card-name .btn-print{margin-left:8px;flex-shrink:0;background:#fff;color:#1a1a1a;border-color:#fff;}
.color-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0;}
.band{display:grid;grid-template-columns:repeat(4,1fr);background:var(--navy);color:var(--on);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;}
.band>div{padding:8px 10px;text-align:center;}
.band>div .val{font-size:15px;font-weight:900;margin-top:2px;color:var(--on);}
.band>div .val.red{color:var(--band-red);}
.band>div .val.green{color:var(--band-green);}
.band>div .val.amber{color:var(--band-amber);}
.tbl{width:100%;border-collapse:collapse;font-size:12px;}
.tbl th{background:var(--navy);color:var(--on);padding:5px 7px;font-weight:700;letter-spacing:.05em;text-align:center;border:1px solid var(--navy2);white-space:nowrap;font-size:11px;text-transform:uppercase;}
.tbl thead th{position:sticky;top:0;z-index:4;}
.tbl td{padding:4px 6px;border:1px solid var(--border);vertical-align:middle;line-height:1.35;}
.tbl tr:nth-child(even) td{background:var(--stripe);}
.tbl tr:hover td{background:var(--hover);}
.tbl .row-cong td{background:var(--cong-bg)!important;color:var(--cong-fg);}
.tbl .row-lon td{background:var(--lon-bg)!important;color:var(--lon-fg);}
.tbl .row-latvat td{background:var(--latvat-bg)!important;color:var(--latvat-fg);}
.tbl .row-tt td{background:var(--tt-bg)!important;color:var(--tt-fg);font-style:italic;font-weight:700;}
.tbl .row-chuyen-tx td{background:var(--chuyen)!important;color:var(--red);font-style:italic;font-weight:700;}
.tbl .row-band td{background:var(--navy);color:var(--on);font-weight:900;}
.tbl td.sum{color:var(--sum);font-weight:900;}
.tbl tr.row-total td,.tbl tr.row-total:hover td{background:var(--sum)!important;color:#fff!important;font-weight:900;}
.tbl tr.row-hd td{background:var(--hd-row)!important;}
.tbl tr.row-hd:hover td{background:var(--hd-row-h)!important;}
.tbl tr.row-nohd td{background:var(--nohd)!important;}
.tbl tr.row-nohd:hover td{background:var(--nohd-h)!important;}
.tbl tr.row-nohd td:first-child{box-shadow:inset 4px 0 0 var(--nohd-edge);}
.hd-legend{display:flex;gap:14px;align-items:center;justify-content:flex-end;margin:0 2px 6px;font-family:Roboto,"Segoe UI",system-ui,sans-serif;font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--muted);text-transform:uppercase;}
.hd-leg{display:inline-flex;align-items:center;gap:6px;}
.hd-sw{display:inline-block;width:22px;height:13px;border-radius:3px;border:1px solid var(--border2);}
.hd-sw-no{background:var(--nohd);box-shadow:inset 4px 0 0 var(--nohd-edge);}
.hd-sw-yes{background:var(--hd-row);}
.tbl tr.row-phieu{cursor:pointer;}
.card.sum-fit{width:max-content;max-width:100%;overflow-x:auto;}
.tbl.tbl-sum{width:max-content;max-width:none;table-layout:fixed;}
.tbl.tbl-sum th,.tbl.tbl-sum td{white-space:nowrap;padding:4px 5px;}
.tbl.tbl-sum:has(> thead > tr > th:nth-child(6)) th:nth-child(1),
.tbl.tbl-sum:has(> thead > tr > th:nth-child(6)) td:nth-child(1){width:36px;}
.tbl.tbl-sum:has(> thead > tr > th:nth-child(6)) th:nth-child(2),
.tbl.tbl-sum:has(> thead > tr > th:nth-child(6)) td:nth-child(2){width:280px;}
.tbl.tbl-sum:has(> thead > tr > th:nth-child(6)) th:nth-child(n+3),
.tbl.tbl-sum:has(> thead > tr > th:nth-child(6)) td:nth-child(n+3){width:98px;}
.tbl.tbl-sum:not(:has(> thead > tr > th:nth-child(6))) th:nth-child(1),
.tbl.tbl-sum:not(:has(> thead > tr > th:nth-child(6))) td:nth-child(1){width:118px;}
.tbl.tbl-sum:not(:has(> thead > tr > th:nth-child(6))) th:nth-child(n+2),
.tbl.tbl-sum:not(:has(> thead > tr > th:nth-child(6))) td:nth-child(n+2){width:98px;}
.tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:10px;}
.tab{padding:6px 12px;font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--muted);cursor:pointer;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;background:none;text-transform:uppercase;}
.tab.active{color:var(--navy);border-bottom-color:var(--gold);}
.modal-overlay{position:fixed;inset:0;background:var(--overlay);z-index:200;display:none;align-items:center;justify-content:center;}
.modal-overlay.show{display:flex;}
.modal{background:var(--card);border-radius:var(--radius2);width:92%;max-width:760px;max-height:86vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 18px 50px rgba(61,43,31,.28);border:1px solid var(--border);}
.modal.wide{max-width:980px;}
.modal-header{background:var(--navy);color:var(--on);padding:10px 14px;display:flex;align-items:center;justify-content:space-between;}
.modal-header h3{font-size:14px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;}
.modal-header .close{background:none;border:none;color:rgba(255,253,248,.7);font-size:20px;cursor:pointer;}
.modal-body{padding:12px;overflow-y:auto;flex:1;}
.modal-footer{padding:8px 12px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px;}
.form-group{margin-bottom:10px;}
.form-group label{display:block;font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--muted);margin-bottom:3px;text-transform:uppercase;}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:7px 8px;border:1.5px solid var(--border);border-radius:var(--radius);font-size:12px;font-weight:500;background:var(--paper);color:var(--text);text-transform:uppercase;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(166,133,74,.16);}
.form-row{display:flex;gap:8px;}
.form-row>*{flex:1;}
.line-items{border:1.5px solid var(--border);border-radius:var(--radius);overflow:auto;}
.line-items-header,.line-item-row{display:grid;grid-template-columns:1.6fr 46px 58px 90px 100px 1fr 28px;gap:5px;padding:4px 6px;align-items:center;}
.line-items-header{background:var(--bg);font-size:10px;font-weight:700;color:var(--muted);letter-spacing:.03em;text-transform:uppercase;}
.line-item-row{border-top:1px solid var(--border);}
.line-item-row input{padding:4px 6px;border:1px solid var(--border);border-radius:3px;font-size:11px;width:100%;text-transform:uppercase;}
.line-item-row .rm{background:none;border:none;color:var(--red);cursor:pointer;font-size:16px;}
.line-items-footer{padding:6px 8px;background:var(--bg);display:flex;justify-content:space-between;align-items:center;border-top:2px solid var(--gold);}
.line-items-footer .total-val{font-size:14px;font-weight:900;color:var(--navy);}
.add-line-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px;background:var(--bg);border:1px dashed var(--border2);border-radius:var(--radius);font-size:11px;font-weight:700;color:var(--navy3);cursor:pointer;width:100%;margin-top:4px;text-transform:uppercase;}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
.settings-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:10px;}
.settings-card h4{font-size:12px;font-weight:900;color:var(--navy);margin-bottom:6px;letter-spacing:.05em;text-transform:uppercase;}
.settings-card .item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px solid var(--border);font-size:12px;}
.settings-card .item:last-child{border-bottom:none;}
.toast-container{position:fixed;top:16px;right:16px;z-index:300;display:flex;flex-direction:column;gap:8px;}
.toast{padding:8px 14px;border-radius:var(--radius);font-size:12px;font-weight:700;letter-spacing:.03em;box-shadow:0 4px 16px rgba(61,43,31,.16);text-transform:uppercase;}
.toast-success{background:var(--ok);color:var(--on);}
.toast-error{background:var(--red);color:#fff;}
.print-overlay{position:fixed;inset:0;background:var(--overlay);z-index:250;display:none;align-items:center;justify-content:center;}
.print-overlay.show{display:flex;}
.print-box{background:var(--card);border-radius:var(--radius2);width:98vw;height:96vh;display:flex;flex-direction:column;}
.print-header{background:var(--navy);color:var(--on);padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0;}
.print-actions{display:flex;gap:8px;flex-wrap:wrap;}
.print-body{flex:1;overflow:auto;background:var(--desk);}
.print-body iframe{width:100%;height:100%;border:none;background:var(--desk);}
.badge{display:inline-block;padding:1px 5px;border-radius:3px;font-size:10px;font-weight:700;letter-spacing:.04em;}
.badge-cong{background:var(--cong-bg);color:var(--cong-fg);}
.badge-lon{background:var(--lon-bg);color:var(--lon-fg);}
.badge-latvat{background:var(--latvat-bg);color:var(--latvat-fg);}
.badge-ok{background:var(--tt-bg);color:var(--tt-fg);}
.badge-kh{background:var(--cong-bg);color:var(--cong-fg);}
.badge-no{background:var(--band-red);color:var(--red);}
.tbl tr.row-nhot td{font-style:italic;}
.empty-state{text-align:center;padding:22px 8px;color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;}
.login-wrap,.home-wrap{min-height:calc(100vh / 1.1);display:flex;align-items:center;justify-content:center;padding:24px;background:
  radial-gradient(1200px 500px at 10% -10%, var(--glow), transparent 50%),
  linear-gradient(180deg,var(--home1),var(--home2));}
.login-card,.home-card{width:min(1080px,100%);}
.login-card{width:min(420px,100%);background:var(--card);border:1px solid var(--border);border-radius:16px;padding:28px 26px 22px;box-shadow:0 16px 40px rgba(74,55,40,.08);}
.brand-kicker{font-size:11px;letter-spacing:.18em;font-weight:700;color:var(--gold);text-transform:uppercase;}
.brand-title{font-size:22px;font-weight:900;color:var(--navy);letter-spacing:.04em;margin:6px 0 4px;text-transform:uppercase;}
.brand-sub{color:var(--muted);font-size:13px;margin-bottom:18px;}
.home-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:18px;}
.mod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;}
.mod{text-align:left;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;cursor:pointer;min-height:132px;display:flex;flex-direction:column;gap:6px;}
.mod:hover{border-color:var(--gold);box-shadow:0 8px 20px rgba(74,55,40,.06);}
.mod.soon{cursor:default;opacity:.72;}
.mod.soon:hover{border-color:var(--border);box-shadow:none;}
.mod .k{font-size:10px;letter-spacing:.14em;font-weight:700;color:var(--gold);text-transform:uppercase;}
.mod h3{font-size:16px;font-weight:900;color:var(--navy);text-transform:uppercase;}
.mod p{color:var(--muted);font-size:12px;line-height:1.4;}
.pill{display:inline-block;margin-top:auto;font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--navy3);text-transform:uppercase;}
.pill.soon{color:var(--muted);}
.ocr-box{background:var(--paper);border:1.5px dashed var(--border2);border-radius:8px;padding:10px;margin-bottom:10px;}
.ocr-hint{font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--muted);text-transform:uppercase;margin-bottom:8px;}
.ocr-box.over{border-color:var(--navy);background:var(--bg2);box-shadow:inset 0 0 0 1px var(--navy);}
.ocr-box.busy{opacity:.7;pointer-events:none;}
.ocr-note{font-size:12px;color:var(--navy3);margin-top:6px;text-transform:uppercase;}
.ham{display:none;font-size:20px;}
@media(max-width:1024px){
  .sidebar{position:fixed;left:0;top:0;bottom:0;z-index:120;transform:translateX(-105%);}
  .sidebar.open{transform:translateX(0);}
  .ham{display:inline-flex;}
  .settings-grid,.band{grid-template-columns:1fr 1fr;}
}
@media(max-width:640px){
  .form-row,.settings-grid,.band{display:block;}
  .band>div{border-bottom:1px solid rgba(255,248,235,.08);}
}

.theme-row{display:flex;gap:8px;flex-wrap:wrap;}
.theme-opt{flex:1;min-width:140px;text-align:left;background:var(--paper);border:1.5px solid var(--border);border-radius:10px;padding:8px 10px;cursor:pointer;color:var(--text);font-size:11px;font-weight:800;letter-spacing:.04em;}
.theme-opt.on{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy);}
.theme-opt .sw{display:block;height:28px;border-radius:6px;margin-bottom:6px;border:1px solid var(--border);}
.sw-mono{background:linear-gradient(90deg,#111 0 34%,#fff 34% 67%,#cfcfcf 67%);}
.sw-navy{background:linear-gradient(90deg,#071833 0 50%,#fff 50%);}
.sw-beige{background:linear-gradient(90deg,#3a2a1c 0 50%,#e4d3b8 50%);}

.ke-actions{display:flex;gap:8px;margin-left:auto;}
.ke-desk{background:var(--desk);border-radius:var(--radius2);padding:16px 8px 28px;display:flex;justify-content:center;overflow:visible;}
.ke-sheet{width:241.5mm;max-width:100%;background:var(--paper);color:var(--text);box-shadow:0 12px 36px rgba(0,0,0,.18);padding:10mm 8mm;box-sizing:border-box;}
.ke-hd{text-align:center;margin-bottom:8px;}
.ke-co{font-size:9pt;font-weight:700;letter-spacing:.08em;color:var(--muted);}
.ke-hd h2{font-size:13pt;font-weight:900;color:var(--navy);margin:2px 0;letter-spacing:.02em;}
.ke-sub{font-size:10pt;font-weight:800;color:var(--navy3);}
.ke-sheet .ke-tbl{font-size:8.5pt;}
.ke-sheet .ke-tbl th{font-size:7.5pt;padding:4px 3px;white-space:normal;}
.ke-sheet .ke-tbl td{padding:3px 4px;}
.ke-sheet .ke-tbl tr:nth-child(even) td,.ke-sheet .ke-tbl tr:hover td{background:var(--paper);}
.ke-sheet .ke-tbl tr.ke-row td,.ke-sheet .ke-tbl tr.ke-row:hover td{background:var(--ke-wash);}
.ke-sheet .ke-who{font-weight:900;text-align:center;vertical-align:middle;width:78px;line-height:1.25;color:var(--text);}
.ke-sheet .ke-tbl tr.ke-row td.ke-who,.ke-sheet .ke-tbl tr.ke-row:hover td.ke-who{background:var(--ke-head);border-left:4px solid var(--ke-edge);}
.ke-tx-kien{--ke-edge:#b85c38;--ke-wash:#f8ece6;--ke-head:#f3ddd2;--ke-deep:#7a3418;}
.ke-tx-mong{--ke-edge:#5a7a3a;--ke-wash:#eef3e6;--ke-head:#dde8cc;--ke-deep:#31481c;}
.ke-tx-niem{--ke-edge:#8d3d4f;--ke-wash:#f8e8ec;--ke-head:#f0d4db;--ke-deep:#5c2432;}
.ke-tx-hoa{--ke-edge:#6b4a32;--ke-wash:#f4ece6;--ke-head:#e8d9cc;--ke-deep:#3f2918;}
.ke-tx-choi{--ke-edge:#a6842a;--ke-wash:#f8f3e4;--ke-head:#f0e6c4;--ke-deep:#6a5210;}
.ke-tx-vk{--ke-edge:#2f6a52;--ke-wash:#e7f3ee;--ke-head:#d3e8de;--ke-deep:#163d2e;}
.ke-ncc-phatthi{--ke-edge:#2f4ea0;--ke-wash:#e8eef8;--ke-head:#d4e0f4;--ke-deep:#1a2f6e;}
.ke-ncc-toan{--ke-edge:#0f766e;--ke-wash:#e5f4f2;--ke-head:#cce8e4;--ke-deep:#084840;}
.ke-ncc-giap{--ke-edge:#6b7c93;--ke-wash:#eef1f5;--ke-head:#dde3ec;--ke-deep:#3d4858;}
.ke-ncc-manhthang{--ke-edge:#7a4e8a;--ke-wash:#f3eef6;--ke-head:#e6dcee;--ke-deep:#4a2c56;}
.ke-ncc-phucloc{--ke-edge:#1a7a8c;--ke-wash:#e6f4f7;--ke-head:#cfe8ee;--ke-deep:#0c4652;}
.ke-ncc-hoangthem{--ke-edge:#3d78b4;--ke-wash:#e8f2fa;--ke-head:#d4e6f6;--ke-deep:#1e4a78;}
.ke-ncc-huynhtinh{--ke-edge:#3d4a68;--ke-wash:#eceef3;--ke-head:#d9dee8;--ke-deep:#222c40;}
html[data-theme="mono"] .ke-tx-kien{--ke-edge:#222;--ke-wash:#f7f7f7;--ke-head:#ececec;--ke-deep:#222;}
html[data-theme="mono"] .ke-tx-mong{--ke-edge:#333;--ke-wash:#f1f1f1;--ke-head:#e2e2e2;--ke-deep:#333;}
html[data-theme="mono"] .ke-tx-niem{--ke-edge:#444;--ke-wash:#ededed;--ke-head:#dadada;--ke-deep:#444;}
html[data-theme="mono"] .ke-tx-hoa{--ke-edge:#555;--ke-wash:#e8e8e8;--ke-head:#d2d2d2;--ke-deep:#333;}
html[data-theme="mono"] .ke-tx-choi{--ke-edge:#3a3a3a;--ke-wash:#f4f4f4;--ke-head:#e6e6e6;--ke-deep:#3a3a3a;}
html[data-theme="mono"] .ke-tx-vk{--ke-edge:#666;--ke-wash:#e4e4e4;--ke-head:#cccccc;--ke-deep:#222;}
html[data-theme="mono"] .ke-ncc-phatthi{--ke-edge:#222;--ke-wash:#f6f6f6;--ke-head:#eaeaea;--ke-deep:#222;}
html[data-theme="mono"] .ke-ncc-toan{--ke-edge:#333;--ke-wash:#f0f0f0;--ke-head:#e0e0e0;--ke-deep:#333;}
html[data-theme="mono"] .ke-ncc-giap{--ke-edge:#4a4a4a;--ke-wash:#ebebeb;--ke-head:#d8d8d8;--ke-deep:#333;}
html[data-theme="mono"] .ke-ncc-manhthang{--ke-edge:#555;--ke-wash:#e6e6e6;--ke-head:#d0d0d0;--ke-deep:#222;}
html[data-theme="mono"] .ke-ncc-phucloc{--ke-edge:#3a3a3a;--ke-wash:#f3f3f3;--ke-head:#e4e4e4;--ke-deep:#3a3a3a;}
html[data-theme="mono"] .ke-ncc-hoangthem{--ke-edge:#666;--ke-wash:#e3e3e3;--ke-head:#cacaca;--ke-deep:#222;}
html[data-theme="mono"] .ke-ncc-huynhtinh{--ke-edge:#2a2a2a;--ke-wash:#f8f8f8;--ke-head:#eeeeee;--ke-deep:#2a2a2a;}
.ke-cards{display:flex;flex-direction:column;gap:8px;}
.ke-card{border:1.5px solid var(--ke-edge);border-radius:8px;overflow:visible;background:var(--ke-wash);break-inside:avoid;}
.ke-card-name{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--ke-deep);color:#fff;font-weight:900;text-align:left;padding:4px 6px;border-bottom:1px solid var(--ke-deep);letter-spacing:.03em;white-space:nowrap;}
.ke-card-title{min-width:0;overflow:hidden;text-overflow:ellipsis;}
.ke-card-period{display:flex;align-items:baseline;justify-content:flex-end;gap:5px;white-space:nowrap;text-align:right;}
.ke-card-period-label{font-size:6.5pt;letter-spacing:.02em;}
.ke-card-period-value{font-size:9.5pt;font-variant-numeric:tabular-nums;}
.ke-card .ke-grid{width:100%;border-collapse:collapse;font-size:8.5pt;background:var(--ke-wash);}
.ke-card .ke-grid th{font-size:7.5pt;padding:3px 4px;background:var(--ke-head);color:var(--text);border:1px solid rgba(0,0,0,.08);font-weight:700;text-align:center;white-space:normal;}
.ke-card .ke-grid thead th{position:sticky;top:0;z-index:4;}
.ke-card .ke-grid td{padding:3px 4px;border:1px solid rgba(0,0,0,.08);background:transparent;color:var(--text);}
.ke-card .ke-grid tr.ke-sum td{background:var(--ke-deep);color:#fff;border-color:var(--ke-deep);font-weight:900;}
.ke-card .ke-grid .ke-plate{width:78px;min-width:78px;max-width:78px;white-space:nowrap!important;padding-left:2px;padding-right:2px;}
.ke-card .ke-grid .ke-phieu{white-space:nowrap!important;}
.ke-card .ke-grid td.ke-note{white-space:nowrap;font-size:6.5pt;letter-spacing:-0.04em;padding:2px 3px;}
.ke-card .ke-grid tr.ke-sum td.ke-note{white-space:nowrap;font-size:6.5pt;letter-spacing:-0.05em;line-height:1.15;}
.tbl tr.row-paid td,.tbl tr.row-paid:hover td,.ke-card .ke-grid tr.row-paid td{color:#c0392b !important;}
.ke-page-foot{margin-top:10px;font-size:8.5pt;}
.ke-page-foot tr.ke-page-total td,.ke-page-foot tr.ke-page-total:hover td{background:#000!important;color:#fff!important;border-color:#000!important;font-size:10pt;line-height:1.25;padding:4.4px 6px;}
.ke-sheet .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;}
.ke-sheet .wrap{text-align:left;}
@media screen and (max-width:900px){
  .ke-sheet{zoom:calc((100vw - 28px) / 241.5mm);}
}
@media print{
  html{zoom:1;}
  .sidebar,.topbar,.filter-bar,.toast-container,.modal-overlay,.print-overlay,.no-print,.tbl-print-bar,.btn-print,.fee-st-pop{display:none!important;}
  .app,.main,.content{display:block!important;height:auto!important;overflow:visible!important;background:#fff!important;}
  .content{padding:0!important;}
  .ke-desk{background:#fff!important;padding:0!important;}
  .ke-sheet{box-shadow:none!important;width:241.5mm!important;max-width:none!important;zoom:1!important;}
  .ke-card{break-inside:avoid;}
}
@page{size:A4 portrait;margin:8mm;}
@page rpt-a4{size:A4 portrait;margin:10mm;}

.fee-checks{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:4px 2px;}
.fee-checks label{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--text);}
.fee-qr{display:block;margin:8px auto;background:#fff;border:1px solid var(--border);}
.fee-meta{font-size:12px;font-weight:700;line-height:1.45;margin-bottom:8px;}

/* Sổ cấp phí to 30%: zoom đặt trên các khối con, không đặt trên chính khung cuộn .content (zoom trên khung cuộn dễ làm lệch tiêu đề bảng dính khi cuộn trên Chrome/Edge) */
#fee-shell .content{max-width:70%;padding:0 calc(12px * 1.3) calc(12px * 1.3);}
#fee-shell .content::before{height:calc(12px * 1.3);}
#fee-shell .content > *{zoom:1.3;}
/* Keep fee filters and search on one desktop row; let search absorb tight width. */
#fee-shell .filter-bar{flex-wrap:nowrap;}
#fee-shell .filter-bar .fee-checks{flex:0 1 auto;flex-wrap:nowrap;min-width:0;}
#fee-shell .filter-bar select{flex:0 1 auto;min-width:0;}
#fee-shell .filter-bar #fee-q{flex:1 1 220px;min-width:0;max-width:none!important;}

.fee-st-pop{position:fixed;z-index:80;background:#fff;border:1px solid var(--border,#ccc);box-shadow:0 8px 24px rgba(0,0,0,.14);min-width:156px;padding:6px;display:flex;flex-direction:column;gap:4px;}
.fee-st-title{font-size:10px;font-weight:800;letter-spacing:.04em;padding:2px 4px 4px;color:#111;}
.fee-st-opt{border:1px solid var(--border,#ccc);background:#fff;color:#111;font-weight:700;font-size:12px;letter-spacing:.03em;padding:7px 8px;cursor:pointer;text-align:left;}
.fee-st-opt.on,.fee-st-opt:hover{background:#111;color:#fff;border-color:#111;}
#fee-shell .fee-st-cell{white-space:nowrap;cursor:pointer;}
#fee-shell tr.fee-row{cursor:pointer;}
.modal-footer.split{justify-content:space-between;align-items:center;}
.modal-footer .fee-edit-acts{display:flex;gap:8px;}

#oil-shell .tbl.tbl-fit{width:max-content;max-width:none;table-layout:auto;}
#oil-shell .tbl.tbl-fit th,#oil-shell .tbl.tbl-fit td{white-space:nowrap;width:auto;}
#oil-shell .card:has(.tbl-fit){width:max-content;max-width:100%;overflow-x:auto;}

#fee-shell .fee-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 8px;}
#fee-shell .fee-kpi{background:var(--card);border:1px solid var(--border2);border-radius:var(--radius);padding:8px 10px;text-align:center;min-width:0;}
#fee-shell .fee-kpi-l{font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--navy);}
#fee-shell .fee-kpi-v{font-size:15px;font-weight:900;margin-top:2px;color:var(--navy);font-variant-numeric:tabular-nums;}
#fee-shell .fee-kpi-v.green{color:var(--green);}
#fee-shell .fee-kpi-v.amber{color:var(--amber);}
#fee-shell .fee-kpi-v.red{color:var(--red);}
#fee-shell .fee-kpi-trip{font-weight:900;color:#b42318;}
#fee-shell .fee-kpi-wait{background:#ead4b0;border:2px solid var(--navy3);box-shadow:inset 0 0 0 1px rgba(90,64,48,.18);}
@media(max-width:640px){
  #fee-shell .fee-kpis{grid-template-columns:1fr 1fr;gap:6px;}
}
@media print{
  #fee-shell .content,#fee-shell .content > *{zoom:1;}
  #fee-shell .content{padding:0 12px 12px;}
  #fee-shell .fee-kpi,#fee-shell .fee-kpi-wait{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
}

#oil-shell .tbl.tbl-a4{width:216mm;max-width:100%;table-layout:fixed;font-size:17px;}
#oil-shell .tbl.tbl-a4 th{font-size:15px;padding:7px 10px;}
#oil-shell .tbl.tbl-a4 td{padding:6px 8px;}
#oil-shell .card:has(.tbl-a4){width:216mm;max-width:100%;overflow-x:auto;}
#oil-shell .card:has(.tbl-a4) .card-header h3{font-size:17px;}
#oil-shell .tbl.tbl-a4 col.c-muc{width:75mm;}
#oil-shell .tbl.tbl-a4 col.c-lit,#oil-shell .tbl.tbl-a4 col.c-dg,#oil-shell .tbl.tbl-a4 col.c-gt{width:38mm;}
#oil-shell .tbl.tbl-a4 col.c-act{width:27mm;}
#oil-shell .tbl.tbl-a4 th:first-child,#oil-shell .tbl.tbl-a4 td:first-child{text-align:left;}
#oil-shell .tbl.tbl-a4 th,#oil-shell .tbl.tbl-a4 td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

#oil-shell .card.ton-dau .card-header{background:var(--navy);border-bottom-color:var(--navy2);}
#oil-shell .card.ton-dau .card-header h3{color:var(--on);}
#oil-shell .card.ton-dau .tbl.tbl-a4 th{background:var(--navy);border-color:var(--navy2);color:var(--on);}
#oil-shell .card.ton-nhot{border-color:#8aa0b5;}
#oil-shell .card.ton-nhot .card-header{background:#2c4156;border-bottom-color:#1e3042;}
#oil-shell .card.ton-nhot .card-header h3{color:#f3f6f9;}
#oil-shell .card.ton-nhot .tbl.tbl-a4 th{background:#2c4156;border-color:#1e3042;color:#f3f6f9;}
#oil-shell .card.ton-nhot .tbl.tbl-a4 tr:nth-child(even) td{background:#e6eef5;}
#oil-shell .card.ton-dau .tbl.tbl-a4 tr.row-total td,
#oil-shell .card.ton-dau .tbl.tbl-a4 tr.row-total:hover td{background:#1c120b!important;color:#f7f1e6!important;}
#oil-shell .card.ton-nhot .tbl.tbl-a4 tr.row-total td,
#oil-shell .card.ton-nhot .tbl.tbl-a4 tr.row-total:hover td{background:#12202e!important;color:#f4f7fb!important;}

#staff-shell .staff-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:10px 12px 12px;}
#staff-shell .staff-grid h4{margin:0 0 6px;font-size:11px;letter-spacing:.08em;color:var(--navy);}
#staff-shell .staff-row{display:grid;grid-template-columns:148px 1fr;gap:8px;padding:5px 0;border-bottom:1px dashed var(--border);font-size:12px;}
#staff-shell .staff-row span{font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--muted);}
#staff-shell .staff-row b{font-weight:700;color:var(--text);}
#staff-shell .staff-docs{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px;}
#staff-shell .staff-doc{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);padding:8px;text-align:center;}
#staff-shell .staff-doc img{max-width:100%;max-height:260px;object-fit:contain;background:#fff;border:1px solid var(--border);}
#staff-shell .staff-doc .caption{margin-top:6px;font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--navy);}
#staff-shell .staff-doc-actions{display:flex;gap:6px;justify-content:center;margin-top:6px;}
#staff-shell .staff-empty{min-height:120px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:11px;font-weight:700;border:1px dashed var(--border);}
#staff-shell .badge{display:inline-block;padding:1px 6px;border-radius:99px;font-size:10px;font-weight:800;letter-spacing:.04em;}
#staff-shell .badge-no{background:var(--band-red);color:var(--red);}
@media(max-width:860px){
  #staff-shell .staff-grid,#staff-shell .staff-docs{grid-template-columns:1fr;}
}

#oil-shell .oil-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 10px;}
#oil-shell .oil-kpi{background:var(--card);border:1px solid var(--border2);border-radius:14px;padding:12px 10px 10px;text-align:center;min-width:0;}
#oil-shell .oil-kpi-l{font-size:12px;font-weight:800;letter-spacing:.06em;color:var(--navy);}
#oil-shell .oil-kpi-v{font-size:22px;font-weight:900;margin-top:4px;color:var(--navy);font-variant-numeric:tabular-nums;line-height:1.15;}
#oil-shell .oil-kpi-v.green{color:var(--green);}
#oil-shell .oil-kpi-v.amber{color:var(--amber);}
#oil-shell .oil-kpi-v.red{color:var(--red);}
#oil-shell .oil-kpi-u{font-size:13px;font-weight:800;letter-spacing:.04em;margin-left:2px;}
#oil-shell .oil-kpi-wait{background:#fff3c4;border:2px solid var(--navy3);box-shadow:inset 0 0 0 1px rgba(90,64,48,.18);}
@media(max-width:640px){
  #oil-shell .oil-kpis{grid-template-columns:1fr 1fr;}
}

#oil-shell .oil-issue-sheet{display:flex;flex-direction:column;align-items:stretch;width:max-content;max-width:min(100%,1300px);}
#oil-shell .oil-issue-sheet .oil-kpis{width:0;min-width:100%;}
#oil-shell .oil-issue-sheet > .card:has(.tbl-fit){width:max-content;max-width:100%;overflow-x:auto;}
#oil-shell .oil-issue-sheet .tbl.tbl-fit{width:max-content;max-width:none;table-layout:auto;font-size:16px;}
#oil-shell .oil-issue-sheet .tbl.tbl-fit th{font-size:14px;}
#oil-shell .oil-issue-sheet .tbl.tbl-fit th,#oil-shell .oil-issue-sheet .tbl.tbl-fit td,#oil-shell .oil-issue-sheet .tbl.tbl-fit td.wrap{white-space:nowrap;overflow-wrap:normal;}
#oil-shell .oil-issue-sheet tr.st-da td,#oil-shell .oil-issue-sheet tr.st-da:hover td{background:#d5ead0!important;color:#1c3a22!important;}
#oil-shell .oil-issue-sheet tr.st-vua td,#oil-shell .oil-issue-sheet tr.st-vua:hover td{background:#f6e4b4!important;color:#4a3410!important;}
#oil-shell .oil-issue-sheet tr.st-cho td,#oil-shell .oil-issue-sheet tr.st-cho:hover td{background:#fff6b0!important;color:#5c4a12!important;}

#oil-shell .oil-issue-sheet td.lit{font-weight:800;}
#oil-shell .tbl.tbl-a4 tr.row-total td.tot-lab{text-align:right;}

#cont-shell .card{overflow:visible;}
#cont-shell .tbl td.wrap{max-width:240px;}
#cont-shell .fee-checks{margin-left:4px;}

#fee-shell table.tbl.fee-cho{font-size:calc(12px * 1.12 * 1.12);font-weight:800;}
#fee-shell table.tbl.fee-cho th,
#fee-shell table.tbl.fee-cho td{font-weight:800;}
#fee-shell table.tbl.fee-cho th{font-size:calc(11px * 1.12 * 1.12);}
#fee-shell table.tbl.fee-cho th:first-child,
#fee-shell table.tbl.fee-cho td:first-child{text-align:right;font-weight:900;}
#fee-shell table.tbl.fee-cho th:nth-child(2),
#fee-shell table.tbl.fee-cho td:nth-child(2){text-align:right;width:1%;white-space:nowrap;}
#fee-shell table.tbl.fee-cho th:nth-child(3),
#fee-shell table.tbl.fee-cho td:nth-child(3){width:1%;white-space:nowrap;text-align:center;}
#fee-shell table.tbl.fee-cho tr.row-total td{font-weight:800;}

.modal.fee-slip{max-width:420px;}
.fee-slip-body{padding-top:10px;}
.fee-slip-line{display:grid;grid-template-columns:92px 1fr;gap:8px;align-items:baseline;padding:3px 0;font-size:13px;}
.fee-slip-line span{font-size:10px;font-weight:800;letter-spacing:.06em;color:var(--muted);}
.fee-slip-line b{font-weight:800;color:var(--text);word-break:break-word;}
.fee-slip-qr{width:280px;height:auto;image-rendering:pixelated;}
.fee-slip-note{min-height:1.2em;margin-top:6px;font-size:11px;font-weight:700;color:var(--muted);text-align:center;}
#fee-shell table.tbl.fee-cho tr.fee-cho-row{cursor:pointer;}
#fee-shell table.tbl.fee-main tr.row-total td,
#fee-shell table.tbl.fee-main tr.row-total:hover td{background:var(--navy)!important;color:var(--on)!important;border-color:var(--navy2)!important;}
#fee-shell table.tbl.fee-cho .fee-cho-entry{box-sizing:border-box;width:100%;min-width:92px;height:2em;padding:2px 5px;border:1px solid #e8c7c3;border-radius:3px;background:#fff;color:#1a1a1a;font:inherit;text-align:left;}
#fee-shell table.tbl.fee-cho .fee-cho-entry:focus{outline:2px solid #b42318;outline-offset:-1px;background:#fff;}
/* Fee-wait summary: red title/total accents, light readable table. */
#fee-shell .card:has(table.tbl.fee-cho){border-color:var(--border);background:var(--card);}
#fee-shell .card:has(table.tbl.fee-cho) .card-header{background:#b42318;border-bottom-color:#8f1d14;color:#fff;}
#fee-shell .card:has(table.tbl.fee-cho) .card-header h3{color:#fff;}
#fee-shell .card:has(table.tbl.fee-cho) .card-header .btn-print{background:transparent;color:#fff;border-color:#fff;}
#fee-shell .card:has(table.tbl.fee-cho) .card-header .btn-print:hover{background:rgba(255,255,255,.14);color:#fff;border-color:#fff;}
#fee-shell table.tbl.fee-cho{background:#fff5f5;color:#1a1a1a;}
#fee-shell table.tbl.fee-cho th{background:#fdecea;color:#1a1a1a;border-color:#e8c7c3;}
#fee-shell table.tbl.fee-cho tbody td{background:#fff5f5!important;color:#1a1a1a!important;border-color:#e8c7c3;}
#fee-shell table.tbl.fee-cho tbody tr:nth-child(even) td{background:#fffafa!important;}
#fee-shell table.tbl.fee-cho tbody tr:hover td{background:#fdecea!important;color:#1a1a1a!important;}
#fee-shell table.tbl.fee-cho tr.row-total td,
#fee-shell table.tbl.fee-cho tr.row-total:hover td{background:#b42318!important;color:#fff!important;border-color:#8f1d14;}
/* The wait-summary header is redundant; keep only driver data rows and the total. */
#fee-shell table.tbl.fee-cho > thead{display:none!important;}
/* The total is a tbody row, so override alternating/hover cell rules explicitly. */
#fee-shell table.tbl.fee-cho > tbody > tr.row-total > td,
#fee-shell table.tbl.fee-cho > tbody > tr.row-total:hover > td{background:#b42318!important;color:#fff!important;border-color:#8f1d14!important;}
#fee-shell table.tbl.fee-cho > tbody > tr.row-total > td *{color:#fff!important;}
#fee-shell table.tbl.fee-cho .btn.btn-outline{background:transparent;color:#b42318;border-color:#b42318;}
#fee-shell table.tbl.fee-cho .btn.btn-outline:hover{background:#fdecea;color:#8f1d14;border-color:#8f1d14;}
#fee-shell .card:has(table.tbl.fee-cho) .card-header,
#fee-shell table.tbl.fee-cho tr.row-total td{
  -webkit-print-color-adjust:exact;
  print-color-adjust:exact;
}

#oil-shell .oil-rep-card{width:222.75mm;max-width:100%;overflow:clip;}
#oil-shell table.oil-rep{width:100%;max-width:100%;table-layout:fixed;font-size:10.5px;}
#oil-shell table.oil-rep th{font-size:9px;}
#oil-shell table.oil-rep col.r-stt{width:9mm;}
#oil-shell table.oil-rep col.r-ma{width:15mm;}
#oil-shell table.oil-rep col.r-bs{width:26mm;}
#oil-shell table.oil-rep col.r-lit{width:20mm;}
#oil-shell table.oil-rep col.r-dg{width:14mm;}
#oil-shell table.oil-rep col.r-gt{width:22mm;}
#oil-shell table.oil-rep col.r-ngay{width:16mm;}
#oil-shell table.oil-rep col.r-gc{width:100.75mm;}
#oil-shell table.oil-rep th,#oil-shell table.oil-rep td,#oil-shell table.oil-rep td.wrap{white-space:nowrap;}
#oil-shell table.oil-rep td.wrap{white-space:normal;overflow-wrap:break-word;}
#oil-shell table.oil-rep th:nth-child(7),#oil-shell table.oil-rep td:nth-child(7){text-align:center;}
#oil-shell .oil-rep-band{width:222.75mm;max-width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;background:transparent;font-size:9px;overflow:visible;}
#oil-shell .oil-rep-band .oil-rep-cell{background:var(--navy);color:var(--on);border:1px solid var(--navy2);border-radius:8px;padding:8px 10px;text-align:left;}
#oil-shell .oil-rep-band .val{font-size:10.5px;font-weight:900;margin-top:2px;color:var(--on);text-align:left;}
#oil-shell .oil-rep-band .val.amber{color:var(--band-amber);}
#oil-shell .oil-rep-band .val.green{color:var(--band-green);}
/* nâng hạ v2: menu trái + chọn khách */
#cont-shell .cont-cust{padding:8px 12px 10px;border-bottom:1px solid var(--chrome-line);}
#cont-shell .cont-cust label{display:block;font-size:10px;font-weight:700;letter-spacing:.16em;color:var(--on-faint);margin-bottom:4px;}
#cont-shell .cont-cust select{width:100%;padding:6px 8px;border-radius:var(--radius);border:1px solid var(--chrome-line);background:var(--chrome-hover);color:var(--on);font-size:12px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;cursor:pointer;}
#cont-shell .cont-cust select:focus{outline:none;border-color:var(--mark);}
#cont-shell .cont-cust option{color:var(--text);background:var(--card);}
#cont-shell .cont-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:8px;}
#cont-shell .cont-hint{font-size:10px;font-weight:700;letter-spacing:.04em;color:var(--muted);}
#cont-shell p.cont-hint{margin:2px 2px 10px;}
#cont-shell .cf-body{padding:10px 12px 12px;}
#cont-shell .cf-grid,.modal .cf-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 10px;}
#cont-shell .cf-grid .cf-wide,.modal .cf-grid .cf-wide{grid-column:span 2;}
#cont-shell .cf-grid .form-group,.modal .cf-grid .form-group{margin-bottom:8px;}
#cont-shell .cf-money,.modal .cf-money{text-align:right;font-variant-numeric:tabular-nums;}
.cf-calc{display:flex;gap:18px;flex-wrap:wrap;align-items:center;padding:7px 10px;margin:2px 0 8px;border:1px dashed var(--border2);border-radius:var(--radius);background:var(--bg);font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--muted);}
.cf-calc b{color:var(--navy);font-size:13px;margin-left:4px;font-variant-numeric:tabular-nums;}
.cf-calc .cf-note{font-size:10px;color:var(--amber);}
#cont-shell .cf-foot{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
#cont-shell .cont-scroll{overflow:auto;max-height:var(--sticky-maxh);}
#cont-shell .cont-n{font-size:10px;font-weight:600;color:var(--muted);}
#cont-shell .tabs{margin-bottom:8px;}
@media (max-width:900px){#cont-shell .cf-grid,.modal .cf-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:560px){#cont-shell .cf-grid,.modal .cf-grid{grid-template-columns:1fr;}#cont-shell .cf-grid .cf-wide,.modal .cf-grid .cf-wide{grid-column:auto;}}
#cont-shell .card-header .cont-hbtn{margin-left:auto;}
#cont-shell .card-header .cont-hbtn ~ .btn-print{margin-left:6px;}

/* CHỜ CẤP (sv-wait) — bảng to lên 25% */
#oil-shell .oil-wait{display:flex;flex-direction:column;align-items:stretch;width:max-content;max-width:100%;}
#oil-shell .oil-wait > .card,#oil-shell .oil-wait > .card:has(.tbl-fit){width:auto;max-width:100%;overflow-x:auto;margin-bottom:10px;}
#oil-shell .oil-wait .card-header{padding:7.5px 12.5px;gap:10px;}
#oil-shell .oil-wait .card-header h3{font-size:15px;}
#oil-shell .oil-wait .tbl.tbl-fit{width:100%;min-width:max-content;table-layout:auto;font-size:15px;}
#oil-shell .oil-wait .tbl.tbl-fit th{font-size:13.75px;padding:6.25px 8.75px;}
#oil-shell .oil-wait .tbl.tbl-fit td{padding:5px 7.5px;}
#oil-shell .oil-wait .tbl.tbl-fit th,#oil-shell .oil-wait .tbl.tbl-fit td,#oil-shell .oil-wait .tbl.tbl-fit td.wrap{white-space:nowrap;overflow-wrap:normal;word-break:normal;}
#oil-shell .oil-wait .empty-state{font-size:15px;padding:27.5px 10px;}

/* ===== UI 2026-10-07: tiêu đề bảng cố định khi cuộn — mọi phân hệ ===== */
:root{--sticky-maxh:calc(100vh / 1.1 - 92px);}
/* sticky bám mép nội dung (trừ padding) của khung cuộn: chuyển padding trên của #content thành khoảng đệm để tiêu đề dính sát mép trên */
.content{padding-top:0;}
.content::before{content:"";display:block;height:12px;}
.tbl > thead > tr > th,.ke-grid > thead > tr > th{position:sticky;top:0;z-index:4;}
/* tiêu đề nhiều dòng (nhóm cột): dính nguyên khối thead */
.tbl > thead:has(> tr + tr),.ke-grid > thead:has(> tr + tr){position:sticky;top:0;z-index:4;}
.tbl > thead:has(> tr + tr) > tr > th,.ke-grid > thead:has(> tr + tr) > tr > th{position:static;}
/* khung cuộn ngang của bảng rộng: cuộn dọc trong khung để tiêu đề vẫn dính */
.card.sum-fit,
#oil-shell .card:has(.tbl-fit),
#oil-shell .card:has(.tbl-a4),
#oil-shell .oil-wait > .card,
#einv-shell div.einv-tblwrap:not(.einv-nhwrap){max-height:var(--sticky-maxh);overflow:auto;}
@media print{
  .tbl thead,.tbl thead th,.ke-grid thead,.ke-grid thead th{position:static!important;}
  .card.sum-fit,#oil-shell .card:has(.tbl-fit),#oil-shell .card:has(.tbl-a4),#oil-shell .oil-wait > .card,
  #einv-shell div.einv-tblwrap,#cont-shell .cont-scroll{max-height:none!important;overflow:visible!important;}
  .cont-pn-ov,.content::before{display:none!important;}
}

/* ===== Nâng hạ · nhập liệu: chip lọc ngày + phiếu nhập ===== */
#cont-shell .cont-chips{display:inline-flex;flex-wrap:wrap;gap:0;border:1.5px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--card);}
#cont-shell .cont-chip{border:none;border-right:1px solid var(--border);background:transparent;color:var(--muted);padding:5px 10px;font-size:11px;font-weight:800;letter-spacing:.04em;cursor:pointer;text-transform:uppercase;}
#cont-shell .cont-chip:last-child{border-right:none;}
#cont-shell .cont-chip:hover{background:var(--bg2);color:var(--text);}
#cont-shell .cont-chip.on{background:var(--navy3);color:var(--on);}
#cont-shell .cont-range{display:inline-flex;align-items:center;gap:4px;}
#cont-shell .cont-range label{font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--muted);}
#cont-shell .cont-range input{padding:4px 6px;}
#cont-shell .cont-range.on input{border-color:var(--navy3);}
#cont-shell .cont-sum{font-size:11px;font-weight:700;letter-spacing:.03em;color:var(--muted);}
#cont-shell .cont-sum b{color:var(--navy);font-variant-numeric:tabular-nums;}
.cont-pn-ov{position:fixed;inset:0;z-index:150;background:var(--overlay);display:flex;justify-content:flex-end;}
.cont-pn{width:min(1100px,100%);height:100%;background:var(--bg);display:flex;flex-direction:column;box-shadow:-12px 0 40px rgba(0,0,0,.25);animation:contPnIn .16s ease-out;}
@keyframes contPnIn{from{transform:translateX(40px);opacity:.4;}to{transform:none;opacity:1;}}
.cont-pn-head{display:flex;align-items:stretch;gap:12px;background:var(--navy);color:var(--on);padding:12px 16px;flex-shrink:0;}
.cont-pn-title{flex:1;min-width:0;}
.cont-pn-kicker{font-size:10px;font-weight:700;letter-spacing:.14em;color:var(--on-dim);}
.cont-pn-title h2{font-size:18px;font-weight:900;letter-spacing:.06em;margin:2px 0;}
.cont-pn-cust{font-size:12px;font-weight:600;color:var(--on-dim);}
.cont-pn-cust b{color:var(--on);font-weight:900;}
.cont-pn-meta{display:flex;gap:10px;align-items:flex-end;background:var(--chrome-hover);border:1px solid var(--chrome-line);border-radius:var(--radius);padding:6px 10px;}
.cont-pn-meta .form-group{margin:0;min-width:150px;}
.cont-pn-meta .form-group label{color:var(--on-dim);}
.cont-pn-no{display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:6px;min-width:70px;}
.cont-pn-no span{font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--on-dim);}
.cont-pn-no b{font-size:15px;font-weight:900;}
.cont-pn-x{background:none;border:none;color:var(--on-dim);font-size:26px;line-height:1;cursor:pointer;align-self:flex-start;padding:0 4px;}
.cont-pn-x:hover{color:var(--on);}
.cont-pn-body{flex:1;min-height:0;overflow:auto;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;padding:12px 16px;align-items:start;}
.cont-pn-grp{border:1px solid var(--border);border-radius:var(--radius2);background:var(--card);padding:6px 12px 4px;margin-bottom:10px;}
.cont-pn-grp legend{font-size:11px;font-weight:900;letter-spacing:.08em;color:var(--navy);padding:0 6px;}
.cont-pn-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 10px;}
.cont-pn-grid .cf-wide{grid-column:span 2;}
.cont-pn-grid .form-group{margin-bottom:8px;}
.cont-pn .cf-money{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;}
.cont-pn-side{position:sticky;top:0;}
.cont-pn-tot{display:block;margin:0 0 8px;padding:10px 12px;background:var(--paper);border:1.5px solid var(--border2);border-style:solid;}
.cont-pn-tot-h{font-size:11px;font-weight:900;letter-spacing:.08em;color:var(--navy);border-bottom:1px dashed var(--border2);padding-bottom:6px;margin-bottom:6px;}
.cont-pn-tot .t-line,.cont-pn-tot .t-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:3px 0;}
.cont-pn-tot .t-line{font-size:11px;color:var(--muted);}
.cont-pn-tot .t-line b{font-size:12px;margin:0;color:var(--text);}
.cont-pn-tot .t-zero{opacity:.55;}
.cont-pn-tot .t-row b{margin:0;}
.cont-pn-tot .t-main{border-top:2px solid var(--navy);margin-top:6px;padding-top:8px;}
.cont-pn-tot .t-main span{font-size:12px;font-weight:900;color:var(--navy);}
.cont-pn-tot .t-main b{font-size:20px;font-weight:900;color:var(--sum);}
.cont-pn-tot .cf-note{display:block;margin-top:6px;}
.cont-pn-tip{font-size:10px;font-weight:700;letter-spacing:.04em;color:var(--muted);padding:0 2px;}
.cont-pn-foot{display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid var(--border);background:var(--card);flex-shrink:0;}
.cont-pn-foot .btn{padding:8px 16px;font-size:12px;}
.cont-pn-foot .cont-hint{font-size:10px;font-weight:700;letter-spacing:.04em;color:var(--muted);}
@media (max-width:900px){.cont-pn-body{grid-template-columns:1fr;}.cont-pn-side{position:static;}.cont-pn-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:560px){.cont-pn-grid{grid-template-columns:1fr;}.cont-pn-grid .cf-wide{grid-column:auto;}.cont-pn-head{flex-wrap:wrap;}}

/* ===== Nâng hạ · CHI HỘ (sổ riêng, không xuất HĐ) ===== */
#cont-shell .adv-sum{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 22px;padding:8px 12px;margin-bottom:8px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--card);font-size:11px;font-weight:800;letter-spacing:.05em;color:var(--muted);}
#cont-shell .adv-sum b{color:var(--navy);font-size:15px;font-weight:900;margin-left:5px;font-variant-numeric:tabular-nums;}
#cont-shell .adv-sum .adv-y{color:var(--text);}
#cont-shell .adv-sum .due b,#cont-shell .adv-box .due{color:var(--sum);}
#cont-shell .adv-box{display:flex;flex-wrap:wrap;align-items:center;gap:4px 18px;padding:7px 12px;margin:0 0 8px;border:1px dashed var(--border2);border-radius:var(--radius);background:var(--bg);font-size:11px;font-weight:800;letter-spacing:.04em;color:var(--muted);}
#cont-shell .adv-box b{color:var(--navy);font-size:13px;margin-left:4px;font-variant-numeric:tabular-nums;}
#cont-shell .adv-box .adv-tot b{font-size:15px;}
#cont-shell .adv-box .btn{margin-left:auto;}
#cont-shell .adv-ref{font-size:9.5px;font-weight:600;color:var(--muted);white-space:nowrap;}
#cont-shell .adv-checks{display:flex;flex-wrap:wrap;gap:4px 16px;padding:4px 0;}
#cont-shell .adv-tbl td.wrap{max-width:200px;}
#cont-shell .adv-tbl td:not(.wrap){white-space:nowrap;}
@media print{#cont-shell .adv-box .btn{display:none!important;}}
/* nâng hạ · loại cont + hành trình */
.cont-pn-grid .cont-seg,.cont-pn-grid .cont-itin,.cont-pn-grid .cont-warn{grid-column:1/-1;}
.cont-seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:8px;}
.cont-seg-sub{grid-template-columns:repeat(3,minmax(0,1fr));}
.cont-seg-col{grid-template-columns:1fr;}
.cont-seg-o{display:flex;flex-direction:column;gap:2px;border:1px solid var(--border);border-radius:var(--radius);background:var(--paper);padding:8px 10px;cursor:pointer;position:relative;}
.cont-seg-o input{position:absolute;opacity:0;pointer-events:none;}
.cont-seg-o b{font-size:12.5px;color:var(--text);}
.cont-seg-o small{font-size:11px;color:var(--muted);text-transform:none;}
.cont-seg-o:hover{border-color:var(--border2);}
.cont-seg-o.on{border-color:var(--navy3);background:var(--navy3);}
.cont-seg-o.on b,.cont-seg-o.on small{color:var(--on);}
.cont-seg-col .cont-seg-o:has(input:checked){border-color:var(--navy3);background:var(--hd);}
.cont-seg-sub .cont-seg-o{padding:6px 10px;}
.cont-itin{display:flex;align-items:flex-start;gap:6px;flex-wrap:wrap;}
.cont-itin-pt{flex:1 1 180px;min-width:0;}
.cont-itin-pt label{display:block;font-size:11px;font-weight:800;color:var(--muted);margin-bottom:3px;letter-spacing:.03em;}
.cont-itin-pt input{width:100%;}
.cont-itin-arr{align-self:center;padding-top:14px;font-weight:900;color:var(--gold);}
.cont-addr{font-size:11px;margin-top:3px;min-height:14px;text-transform:none;}
.cont-addr a{color:var(--accent);font-weight:700;}
.cont-addr-ok{color:var(--muted);}
.cont-addr-miss{color:var(--amber);font-weight:800;font-size:11px;}
.cont-warn{color:var(--red);font-weight:800;font-size:12px;margin-bottom:6px;}
.cont-ht{font-size:12px;}
.cont-ht i{font-style:normal;color:var(--gold);font-weight:900;}
.cont-ht-miss{color:var(--light);}
.cont-kieu{font-weight:800;white-space:nowrap;}
tr.cont-loc-miss td{background:var(--band-amber)!important;}
@media (max-width:700px){.cont-seg{grid-template-columns:1fr;}.cont-itin-arr{display:none;}}

/* CHỜ CẤP (sv-wait) — rộng thêm 30% (JS đặt width = 1.3 × bề rộng nội dung) */
#oil-shell .oil-wait{min-width:0;}
#oil-shell .oil-wait .tbl.tbl-fit td.num{white-space:nowrap;}
@media print{#oil-shell .oil-wait{width:auto!important;max-width:none!important;}}
