/* Native form controls theo theme (fix dropdown macOS/iOS light mode) */
html{color-scheme:dark;}
html[data-theme="light"]{color-scheme:light;}

/* ── DARK THEME (mặc định) ── */
:root{
  --bg:#0f0f0d;--bg2:#181816;--bg3:#222220;--bg4:#2a2a28;
  --border:rgba(255,255,255,0.07);--border2:rgba(255,255,255,0.13);
  --t:#f0ede8;--t2:#9a9790;--t3:#5c5a56;
  --accent:#e8c87a;--accent2:#b8913a;--accent-rgb:232,200,122;
  --green:#4ade80;--green-bg:rgba(74,222,128,0.1);
  --blue:#60a5fa;--blue-bg:rgba(96,165,250,0.1);
  --amber:#fbbf24;--amber-bg:rgba(251,191,36,0.1);
  --red:#f87171;--red-bg:rgba(248,113,113,0.1);
  --purple:#c084fc;--purple-bg:rgba(192,132,252,0.12);
  --r:9px;--rl:13px;
  --shadow:0 1px 3px rgba(0,0,0,.4);
}
/* ── LIGHT THEME ── */
[data-theme="light"]{
  --bg:#f5f4f0;--bg2:#ffffff;--bg3:#f0eff9;--bg4:#e8e7e3;
  --border:rgba(0,0,0,0.08);--border2:rgba(0,0,0,0.13);
  --t:#1a1916;--t2:#5a5854;--t3:#9a9890;
  --accent:#b8700a;--accent2:#8a5200;--accent-rgb:184,112,10;
  --green:#16a34a;--green-bg:rgba(22,163,74,0.1);
  --blue:#2563eb;--blue-bg:rgba(37,99,235,0.1);
  --amber:#d97706;--amber-bg:rgba(217,119,6,0.1);
  --red:#dc2626;--red-bg:rgba(220,38,38,0.1);
  --purple:#7c3aed;--purple-bg:rgba(124,58,237,0.12);
  --shadow:0 1px 4px rgba(0,0,0,.12);
}
/* ── SMOOTH TRANSITION khi đổi theme ── */
*,*::before,*::after{
  box-sizing:border-box;margin:0;padding:0;
  transition:background-color .25s ease,border-color .2s ease,color .15s ease;
}
/* Loại trừ transition cho animation/transform */
*[style*="transform"],input,select,textarea{transition:none;}
input,select,textarea{transition:border-color .15s;}
body{font-family:'Be Vietnam Pro',sans-serif;background:var(--bg);color:var(--t);min-height:100vh;font-size:14.5px;-webkit-font-smoothing:antialiased;}
#login-screen,#signup-screen,#no-tenant-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:20px 16px;background:#e8eaed;}
#no-tenant-screen{display:none;}
.login-wrap{width:100%;max-width:400px;}
.login-box{background:#fff;border-radius:14px;padding:28px 24px 22px;box-shadow:0 4px 24px rgba(0,0,0,.08),0 1px 3px rgba(0,0,0,.06);}
.login-logo{text-align:center;margin-bottom:22px;}
.brand-logo{width:min(320px,92vw);height:auto;max-height:88px;object-fit:contain;margin:0 auto 10px;display:block;}
.brand-logo--sidebar{width:100%;max-width:180px;max-height:56px;margin:0 auto 4px!important;object-fit:contain;}
.login-logo img.brand-logo{box-shadow:none;border-radius:0;}
.login-logo:has(.brand-logo) .login-wordmark,
.login-logo:has(.brand-logo) [data-i18n="brand_tagline"]{display:none;}
.login-logo:has(.brand-logo) [data-i18n="brand_parent"]{margin-top:4px;font-size:11px;color:#7a8699;}
.s-logo:has(.brand-logo) .s-wordmark{display:none;}
.s-logo:has(.brand-logo) .s-sub{margin-top:2px;}
.login-wordmark{font-size:20px;font-weight:700;color:#1a3a6b;letter-spacing:.3px;}
.login-sub{font-size:11px;color:#7a8699;margin-top:4px;letter-spacing:.5px;}
.login-fields{border:1px solid #dde1e6;border-radius:10px;overflow:hidden;margin-bottom:16px;background:#fafbfc;}
.login-row{display:flex;align-items:stretch;border-bottom:1px solid #dde1e6;}
.login-row:last-child{border-bottom:none;}
.login-row-icon{display:flex;align-items:center;justify-content:center;width:44px;flex-shrink:0;color:#8b95a5;font-size:18px;border-right:1px solid #dde1e6;background:#f5f6f8;}
.login-row input,.login-row select{flex:1;min-width:0;padding:13px 14px;border:none;background:transparent;color:#1f2937;font-size:15px;font-family:'Be Vietnam Pro',sans-serif;outline:none;-webkit-appearance:none;appearance:none;}
.login-row select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b95a5' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;}
.login-row input::placeholder{color:#aab0bb;}
.login-row input:focus,.login-row select:focus{background:#fff;}
.login-btn{width:100%;padding:13px 16px;border-radius:8px;background:#1a73e8;color:#fff;font-weight:600;font-size:15px;border:none;cursor:pointer;font-family:'Be Vietnam Pro',sans-serif;transition:background .2s;letter-spacing:.2px;}
.login-btn:hover{background:#1558b8;}
.login-btn:active{transform:scale(.99);}
.login-footer{display:flex;justify-content:space-between;align-items:center;margin-top:14px;gap:8px;flex-wrap:wrap;}
.login-footer a{font-size:12px;color:#1a73e8;text-decoration:none;}
.login-footer a:hover{text-decoration:underline;}
.login-err{color:#d93025;font-size:12px;margin-top:12px;min-height:18px;text-align:center;}
#app{display:none;flex-direction:row;min-height:100vh;}
.sidebar{width:210px;flex-shrink:0;background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:40;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.s-logo{padding:1.25rem 1rem .75rem;border-bottom:1px solid var(--border);}
.s-wordmark{font-size:20px;font-weight:700;color:var(--accent);}
.s-sub{font-size:10px;color:var(--t3);letter-spacing:2px;text-transform:uppercase;margin-top:2px;}
.s-nav{flex:1;padding:.75rem .6rem;display:flex;flex-direction:column;gap:1px;}
.s-sec{font-size:10px;color:var(--t3);letter-spacing:1.5px;text-transform:uppercase;padding:10px 8px 3px;margin-top:4px;}
.nav-item{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--r);cursor:pointer;color:var(--t2);font-size:13px;transition:all .13s;border:none;background:none;text-align:left;width:100%;}
.nav-item:hover{background:var(--bg3);color:var(--t);}
.nav-item.active{background:rgba(232,200,122,.12);color:var(--accent);font-weight:600;}
.nav-item i{font-size:17px;}
.s-footer{padding:.85rem;border-top:1px solid var(--border);}
.s-user{display:flex;align-items:center;gap:9px;}
.s-avatar{width:30px;height:30px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#0f0f0d;flex-shrink:0;}
.s-uname{font-size:12px;font-weight:600;}
.s-urole{font-size:10px;color:var(--t3);}
.s-logout{margin-left:auto;background:none;border:none;color:var(--t3);cursor:pointer;font-size:16px;padding:4px;border-radius:4px;}
.s-logout:hover{color:var(--red);}
.main{margin-left:210px;flex:1;padding:1.5rem 1.75rem;min-height:100vh;min-width:0;}
.ph{margin-bottom:1.5rem;}
.ph h1{font-size:22px;font-weight:700;}
.ph p{font-size:12px;color:var(--t2);margin-top:3px;}
.tab-page{display:none;min-width:0;}
.tab-page.active{display:block;}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:1.5rem;}
.stat-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rl);padding:1rem 1.1rem;display:flex;align-items:center;gap:12px;}
.stat-icon{width:38px;height:38px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.stat-label{font-size:12px;color:var(--t2);margin-bottom:3px;font-weight:500;}
.stat-val{font-size:20px;font-weight:700;color:var(--t);}
.stat-sub{font-size:11px;color:var(--t2);margin-top:2px;}
.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rl);padding:1.1rem 1.2rem;margin-bottom:1rem;min-width:0;max-width:100%;}
.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:8px;}
.card-title{font-size:14.5px;font-weight:700;display:flex;align-items:center;gap:6px;}
.toolbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap;}
.si{padding:7px 11px;border-radius:var(--r);border:1px solid var(--border2);background:var(--bg3);color:var(--t);font-size:12px;font-family:'Be Vietnam Pro',sans-serif;outline:none;width:180px;}
.si:focus{border-color:var(--accent);}
.sel{padding:7px 9px 7px 9px;border-radius:var(--r);border:1px solid var(--border2);background-color:var(--bg3);color:var(--t);font-size:12px;font-family:'Be Vietnam Pro',sans-serif;outline:none;cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b95a5' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;padding-right:28px;}
select option,.sel option{background-color:var(--bg2);color:var(--t);}
[data-theme="light"] select option,[data-theme="light"] .sel option{background-color:#fff;color:#1a1916;}
.btn{padding:7px 13px;border-radius:var(--r);border:1px solid var(--border2);background:var(--bg3);color:var(--t);font-size:12px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;font-family:'Be Vietnam Pro',sans-serif;transition:all .13s;white-space:nowrap;}
.btn:hover{background:var(--bg4);}
.btn.ac{background:var(--accent);color:#0f0f0d;border-color:var(--accent);font-weight:700;}
.btn.ac:hover{background:var(--accent2);border-color:var(--accent2);}
.tw{overflow-x:auto;overflow-y:visible;position:relative;}
table{width:100%;border-collapse:collapse;font-size:13px;}
th{text-align:left;padding:9px 10px;color:var(--t2);font-weight:700;border-bottom:1px solid var(--border);font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;}
td{padding:10px 10px;border-bottom:1px solid var(--border);color:var(--t);vertical-align:middle;font-size:13px;}
tr:last-child td{border-bottom:none;}
tr:hover td{background:rgba(255,255,255,0.02);}
.acts{display:flex;gap:3px;}
.ib{background:none;border:none;cursor:pointer;color:var(--t3);padding:4px;border-radius:5px;font-size:15px;line-height:1;}
.ib:hover{background:var(--bg3);color:var(--t);}
.ib.del:hover{color:var(--red);}
code{font-family:monospace;font-size:11px;background:var(--bg3);padding:2px 6px;border-radius:4px;color:var(--t2);}
.badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap;}
.b-green{background:var(--green-bg);color:var(--green);}
.b-blue{background:var(--blue-bg);color:var(--blue);}
.b-amber{background:var(--amber-bg);color:var(--amber);}
.b-red{background:var(--red-bg);color:var(--red);}
.xe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;}
.xe-card{border:1px solid var(--border);border-radius:var(--r);background:var(--bg3);overflow:hidden;display:flex;flex-direction:column;min-height:100%;}
.xe-card-media{height:154px;background:var(--bg4);display:flex;align-items:center;justify-content:center;color:var(--t3);font-size:42px;border-bottom:1px solid var(--border);}
.xe-card-media img{width:100%;height:100%;object-fit:cover;display:block;}
.xe-card-body{padding:12px;display:flex;flex-direction:column;gap:10px;min-width:0;flex:1;}
.xe-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}
.xe-card-badges{display:flex;gap:5px;flex-wrap:wrap;align-items:center;}
.xe-status-wrap{display:inline-flex;flex-wrap:wrap;gap:5px;align-items:center;}
.xe-prep-chip{font-size:10px;}
.xe-card-title{font-size:15px;font-weight:800;color:var(--t);line-height:1.35;overflow-wrap:anywhere;}
.xe-card-sub{font-size:12px;color:var(--t2);line-height:1.35;overflow-wrap:anywhere;}
.xe-price-row,.xe-stat-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.xe-price-row div,.xe-stat-row div{border:1px solid var(--border);background:var(--bg4);border-radius:var(--r);padding:8px;min-width:0;}
.xe-price-row span,.xe-stat-row span{display:block;font-size:10px;color:var(--t3);text-transform:uppercase;font-weight:700;letter-spacing:.3px;}
.xe-price-row b,.xe-stat-row b{display:block;margin-top:3px;font-size:12px;color:var(--t);overflow-wrap:anywhere;}
.xe-loan-line{display:grid;grid-template-columns:auto 1fr auto;gap:6px 8px;align-items:center;border:1px solid var(--border);background:var(--bg4);border-radius:var(--r);padding:8px;color:var(--blue);font-size:12px;}
.xe-loan-line b{color:var(--t);font-size:12px;}
.xe-loan-line em{grid-column:2/-1;color:var(--t3);font-size:11px;font-style:normal;}
.xe-cost-line{border:1px solid var(--border);background:var(--bg4);border-radius:var(--r);padding:8px;font-size:12px;font-weight:800;color:var(--red);}
.xe-profit-line{border:1px solid var(--border);background:var(--bg4);border-radius:var(--r);padding:8px;font-size:12px;font-weight:800;}
.xe-profit-line.gain{color:var(--green);}
.xe-profit-line.loss{color:var(--red);}
.xe-profit-line.flat{color:var(--t3);}
.xe-profit-box{border:1px solid var(--border);background:var(--bg4);border-radius:var(--r);padding:8px;display:flex;flex-direction:column;gap:4px;}
.xe-pb-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;font-size:11px;color:var(--t2);}
.xe-pb-row b{font-size:12px;font-weight:800;color:var(--t);}
.xe-pb-row b.gain{color:var(--green);}
.xe-pb-row b.loss{color:var(--red);}
.xe-pb-row b.flat{color:var(--t3);}
.xe-pb-total{border-top:1px solid var(--border);padding-top:5px;margin-top:2px;}
.xe-alert-list{display:flex;flex-direction:column;gap:5px;border:1px solid var(--red);background:var(--bg4);color:var(--red);border-radius:var(--r);padding:8px;font-size:12px;font-weight:700;}
.xe-renting{display:flex;align-items:center;gap:8px;border:1px solid rgba(79,125,204,.35);background:rgba(79,125,204,.08);color:var(--blue);border-radius:var(--r);padding:8px 10px;font-size:12px;cursor:pointer;}
.xe-renting i{font-size:15px;flex-shrink:0}
.xe-renting span{min-width:0;line-height:1.35}
.xe-form-hint{margin-top:6px;font-size:11px;color:var(--t2);line-height:1.35}
.xe-card-actions{display:flex;gap:8px;align-items:center;margin-top:auto;flex-wrap:wrap;}
.xe-card-actions .btn{padding:8px 10px;font-size:12px;}
.xe-empty{grid-column:1/-1;text-align:center;color:var(--t3);padding:2rem;}
.xe-form-section{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r);padding:12px;}
.xe-form-section.full{grid-column:1/-1;}
.xe-section-title{font-size:11px;font-weight:800;color:var(--t2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;}
.xe-subsection-title{font-size:12px;font-weight:800;color:var(--t);padding-top:4px;}
.form-group.muted{opacity:.55;}
.xe-album-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px;margin-top:8px;}
.xe-album-preview img{width:100%;aspect-ratio:1.25/1;object-fit:cover;border:1px solid var(--border);border-radius:var(--r);background:var(--bg4);}
.b-purple{background:var(--purple-bg);color:var(--purple);}
.b-gray{background:rgba(255,255,255,.06);color:var(--t3);}
.b-accent{background:rgba(232,200,122,.15);color:var(--accent);}
.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.dash-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);}
.dash-row:last-child{border-bottom:none;}
.lich-wrap{width:100%;max-width:100%;overflow:hidden;border-radius:var(--r);}
.lich-tbl{width:100%;border-collapse:collapse;font-size:12px;min-width:900px;}
.lh-xe{width:160px;padding:8px 10px;background:var(--bg3);border-bottom:1px solid var(--border);border-right:1px solid var(--border);font-size:11px;font-weight:600;color:var(--t2);text-transform:uppercase;position:sticky;left:0;z-index:2;}
.lh-day{padding:7px 4px;background:var(--bg3);border-bottom:1px solid var(--border);text-align:center;font-size:11px;font-weight:600;color:var(--t2);min-width:72px;border-left:1px solid var(--border);}
.lh-today{background:rgba(232,200,122,.08)!important;}
.lh-group td{background:var(--bg3);padding:7px 12px;font-size:11px;font-weight:700;color:var(--t2);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--border);}
.lh-xe-name{padding:6px 10px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);background:var(--bg2);position:sticky;left:0;z-index:1;white-space:nowrap;}
.xe-id{display:block;font-size:10px;color:var(--t3);font-family:monospace;}
.xe-name{display:block;font-size:12px;font-weight:500;max-width:140px;overflow:hidden;text-overflow:ellipsis;}
.lh-cell{padding:3px;border-bottom:1px solid var(--border);border-left:1px solid var(--border);min-width:72px;height:36px;vertical-align:middle;}
.lich-block{height:30px;border-radius:5px;display:flex;align-items:center;padding:0 7px;cursor:pointer;overflow:hidden;transition:opacity .13s;}
.lich-block:hover{opacity:.85;}
.lb-blue{background:var(--blue);color:#0f0f0d;}
.lb-purple{background:var(--purple);color:#0f0f0d;}
.lb-green{background:var(--green);color:#0f0f0d;}
.lb-name{font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lt-shell{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rl);overflow:visible;width:100%;max-width:100%;user-select:none;-webkit-user-select:none}
.lt-toolbar{display:flex;gap:8px;align-items:center;justify-content:flex-start;padding:10px 12px;border-bottom:1px solid var(--border);background:var(--bg);max-width:100%}
.lt-toolbar input,.lt-toolbar select{user-select:auto;-webkit-user-select:auto}
.lt-toolbar .si{width:260px;min-height:40px}.lt-toolbar .btn,.lt-toolbar .sel{min-height:40px}
.lt-toolbar .lt-type-chips{flex:0 0 auto;justify-content:flex-end;min-width:0;margin-left:auto}
.lt-toolbar .icon-only{width:40px;justify-content:center;padding:0}
.lt-search{display:flex;align-items:stretch;flex:0 0 auto}.lt-search .si{border-radius:var(--r) 0 0 var(--r);height:40px;width:168px}.lt-search-btn{width:40px;border:1px solid #4f82d4;border-left:0;border-radius:0 var(--r) var(--r) 0;background:#4f82d4;color:#fff;font-size:18px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.lt-month-chips{display:flex;align-items:center;gap:6px;flex:0 1 auto;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.lt-month-chips::-webkit-scrollbar{display:none}
.lt-month-chip{flex:0 0 auto;height:40px;padding:0 14px;border:1px solid var(--border2);border-radius:20px;background:var(--bg3);color:var(--t2);font-family:'Be Vietnam Pro',sans-serif;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}
.lt-month-chip:hover{color:var(--t);border-color:var(--border2)}
.lt-month-chip.active{background:rgba(232,200,122,.15);border-color:var(--accent);color:var(--accent)}
.lt-create{flex:0 0 auto}
.lt-create .lt-create-txt{white-space:nowrap}
.lt-mode{display:inline-flex;align-items:center;height:44px;border-radius:6px;overflow:hidden;background:#4f82d4}
.lt-mode button{height:44px;border:0;background:#4f82d4;color:#fff;font-family:'Be Vietnam Pro',sans-serif;font-weight:900;cursor:pointer}
.lt-mode-arrow{width:38px;font-size:22px}.lt-mode-main{padding:0 12px;display:flex;align-items:center;gap:7px;font-size:18px}
.lt-filter-btn{height:44px;border-color:#4f82d4!important;color:#4f82d4!important;background:var(--bg3)!important;font-size:20px;flex-shrink:0}
.lt-filter-panel{display:none;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--bg2);box-shadow:0 12px 32px rgba(0,0,0,.16)}
.lt-filter-panel.open{display:flex}
.lt-filter-panel label,.lt-filter-panel .lt-filter-date{height:54px;min-width:260px;border-bottom:2px solid var(--border2);display:flex;align-items:center;gap:12px;color:var(--t2);background:var(--bg2)}
.lt-filter-panel label i,.lt-filter-panel .lt-filter-date i{font-size:21px}
.lt-filter-panel input,.lt-filter-panel .vdp-wrap{flex:1;min-width:0}
.lt-filter-panel .vdp-wrap .vdp-input-row{border:0;background:transparent;min-height:48px}
.lt-filter-panel .vdp-wrap .vdp-display{font-size:18px;padding:0}
.lt-filter-panel input{height:48px;border:0;background:transparent;color:var(--t);font-size:18px;font-family:'Be Vietnam Pro',sans-serif;outline:none;width:100%}
.lt-filter-panel button{height:54px;border:0;border-radius:6px;background:#4f82d4;color:#fff;font-family:'Be Vietnam Pro',sans-serif;font-size:18px;font-weight:900;padding:0 32px;cursor:pointer}
.lt-date-input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.lt-date-popover{display:none;position:fixed;z-index:10050;background:var(--bg2);border:1px solid var(--border2);border-radius:10px;box-shadow:0 18px 45px rgba(0,0,0,.35);padding:10px}
.lt-date-popover.open{display:block}
.lt-date-popover input{min-height:42px;border:1px solid var(--border2);border-radius:8px;background:var(--bg3);color:var(--t);font-family:'Be Vietnam Pro',sans-serif;padding:0 10px}
.lt-month{height:36px;display:flex;align-items:center;padding:0 18px;background:var(--bg3);border-bottom:1px solid var(--border);font-weight:800;color:var(--t2);text-transform:uppercase;letter-spacing:.4px}
.lt-scroll{overflow-x:auto;overflow-y:auto;max-height:calc(100dvh - 200px);position:relative;-webkit-overflow-scrolling:touch;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:pan-x pan-y;overscroll-behavior-x:contain;width:100%;max-width:100%;border-radius:0 0 var(--rl) var(--rl)}
.lt-scroll.dragging{cursor:grabbing;scroll-behavior:auto}
.lt-scroll.dragging *{user-select:none}
.lt-head{display:grid;grid-template-columns:220px max-content;position:sticky;top:0;z-index:10}
.lt-corner{height:62px;width:220px;min-width:220px;background:var(--bg3);border-right:2px solid var(--border2);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 16px;font-size:11px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.8px}
.lt-days{display:grid;grid-template-columns:repeat(var(--lt-days),160px)}
.lt-day{height:62px;background:var(--bg3);border-right:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--t2);transition:background .15s}
.lt-day.today{background:rgba(232,200,122,.15);border-bottom:2px solid var(--accent)}
.lt-dow{font-size:11px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.5px}
.lt-date-num{font-size:15px;font-weight:800;color:var(--t)}
.lt-day.today .lt-dow{color:var(--accent)}
.lt-day.today .lt-date-num{color:var(--accent)}
.lt-body{display:block;width:max-content;min-width:100%}
.lt-group{display:grid;grid-template-columns:220px max-content}
.lt-group-name{height:40px;background:var(--bg2);border-right:2px solid var(--border2);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;padding:0 16px;font-size:11px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.8px}
.lt-group-days{display:grid;grid-template-columns:repeat(var(--lt-days),160px)}
.lt-group-days span{height:40px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.02);color:var(--t2);font-size:12px;font-weight:700}
.lt-row{display:grid;grid-template-columns:220px max-content;min-height:68px;border-bottom:1px solid var(--border)}
.lt-sticky{position:sticky;left:0;z-index:5}
.lt-sticky.lt-corner{z-index:11;background:var(--bg3)}
.lt-sticky.lt-group-name{z-index:7;background:var(--bg2)}
.lt-car{background:var(--bg);border-right:2px solid var(--border2);border-bottom:1px solid var(--border);padding:10px 16px;display:flex;flex-direction:column;justify-content:center;min-width:220px;width:220px;text-align:left}
.lt-car .lt-id{font-size:10px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}
.lt-car .lt-car-name,.lt-car b{font-size:14px;font-weight:800;color:var(--t);display:block;line-height:1.2}
.lt-car .lt-car-plate,.lt-car em{font-style:normal;font-size:11px;color:var(--accent);margin-top:3px;font-weight:600;display:block}
button.lt-car{appearance:none;-webkit-appearance:none;border:none;border-right:2px solid var(--border2);border-bottom:1px solid var(--border);font-family:inherit;cursor:pointer;color:inherit;width:220px}
.lt-prep-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:12px;font-size:10px;font-weight:700;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.lt-prep-chip.need{background:rgba(245,158,11,.15);color:var(--amber)}
.lt-prep-chip.doing{background:rgba(79,125,204,.15);color:#5b8fd9}
.lt-prep-chip.ready{background:rgba(34,197,94,.15);color:var(--green)}
.lt-prep-chip.rented{background:rgba(148,163,184,.15);color:var(--t2)}
.lt-prep-chip.maint{background:rgba(148,163,184,.18);color:var(--t2)}
.lt-grid{display:grid;grid-template-columns:repeat(var(--lt-days),160px);grid-template-rows:68px;grid-auto-rows:68px;position:relative}
.lt-cell{border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg);cursor:pointer;padding:0;transition:background .1s;position:relative;z-index:1;min-height:68px;grid-row:1}
.lt-cell:nth-child(even){background:rgba(255,255,255,.008)}.lt-cell.today{background:rgba(232,200,122,.06)}
.lt-cell:hover{background:rgba(96,165,250,.1)}
.lt-book{grid-column:var(--start) / span var(--span);grid-row:1;align-self:start;margin-top:calc(4px + var(--lane) * 22px);height:26px;margin-left:3px;margin-right:3px;border:none;border-left:3px solid rgba(255,255,255,.5);border-radius:5px;color:#fff;font-family:'Be Vietnam Pro',sans-serif;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:6px;padding:0 8px;position:relative;z-index:3;overflow:hidden;box-shadow:0 2px 6px rgba(0,0,0,.25);cursor:pointer;transition:filter .1s,transform .1s}
.lt-book:hover{filter:brightness(1.12);transform:scaleY(1.04)}
.lt-book span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.lt-book i{font-size:15px;background:#fff;color:#388e3c;border-radius:50%;flex-shrink:0}
.lt-book.lt-lock{background:#5c6370!important;border-left-color:#9ca3af!important;color:#f3f4f6!important;z-index:2!important;box-shadow:0 2px 6px rgba(0,0,0,.35)!important}
.lt-book.lt-lock:hover{filter:brightness(1.08)}
.lt-book.lt-lock span{display:flex;align-items:center;gap:4px}
.lt-book.reserved{background:#4f7dcc}.lt-book.renting{background:#3f884c}.lt-book.done{background:#69707a}
.lt-book.lt-book-match{outline:3px solid #ffeb3b;outline-offset:2px;filter:brightness(1.2);box-shadow:0 0 0 4px rgba(255,235,59,.35);z-index:6}
.lt-summary-block{position:sticky;bottom:0;z-index:9;background:var(--bg);border-top:2px solid var(--border2);box-shadow:0 -6px 18px rgba(0,0,0,.12)}
.lt-summary-row{display:grid;grid-template-columns:220px max-content}
.lt-summary-label{display:flex;align-items:center;gap:8px;min-height:36px;padding:0 16px;background:var(--bg2);border-top:1px solid var(--border);border-right:2px solid var(--border2);border-bottom:1px solid var(--border);font-size:11px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.5px}
.lt-summary-label i{font-size:14px;color:var(--accent);flex-shrink:0}
.lt-summary-label span{line-height:1.2}
.lt-summary-days{display:grid;grid-template-columns:repeat(var(--lt-days),160px)}
.lt-sum-val{min-height:36px;min-width:160px;display:flex;align-items:center;justify-content:center;border-top:1px solid var(--border);border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg3);font-size:12px;font-weight:800;color:var(--t);font-variant-numeric:tabular-nums}
.lt-sum-val.today{background:rgba(232,200,122,.12);border-top-color:rgba(232,200,122,.35)}
.lt-sum-empty{color:var(--green)}
.lt-sum-empty.low{color:var(--amber)}
.lt-sum-empty.zero{color:var(--red)}
.lt-sum-pct.zero{color:var(--t3)}
.lt-sum-pct.low{color:var(--green)}
.lt-sum-pct.med{color:var(--amber)}
.lt-sum-pct.high{color:var(--red)}
.lt-popover{display:none;position:fixed;z-index:9900;background:#fff;color:#333;border:1px solid #d8dde6;border-radius:6px;box-shadow:0 18px 45px rgba(0,0,0,.28);padding:10px;gap:8px;align-items:center;flex-wrap:nowrap}
.lt-popover.open{display:flex}
.lt-popover:after{content:'';position:absolute;left:50%;bottom:-8px;transform:translateX(-50%) rotate(45deg);width:14px;height:14px;background:#fff;border-right:1px solid #d8dde6;border-bottom:1px solid #d8dde6}
.lt-popover button{min-height:40px;border:0;border-radius:5px;padding:0 15px;background:#3f7dcc;color:#fff;font-family:'Be Vietnam Pro',sans-serif;font-size:13px;font-weight:800;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.lt-popover button.danger{background:#d92525}
.lt-popover-note{position:absolute;left:10px;right:10px;bottom:-28px;color:var(--t2);font-size:11px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(min-width:768px){
  .lt-popover.open{min-width:260px;flex-wrap:wrap;justify-content:center}
  .lt-popover.open .lt-popover-note{position:static;flex-basis:100%;margin-top:2px;bottom:auto;left:auto;right:auto}
}
.lt-empty{padding:24px;color:var(--t3)}
body.light .lt-shell{background:#fff}body.light .lt-cell{background:#fff}body.light .lt-cell:nth-child(even){background:#fafafa}
@media(max-width:767px){
  .lt-shell{border-radius:16px;margin:0 -2px}
  .lt-toolbar{display:grid;grid-template-columns:1fr auto auto;gap:7px;padding:10px}
  .lt-search{grid-column:1/-1}.lt-search .si{width:100%;min-height:44px}.lt-search-btn{height:44px}
  .lt-toolbar .btn,.lt-toolbar .sel{min-height:44px}
  .lt-mode{grid-column:1/3}.lt-mode-main{flex:1;justify-content:center}
  .lt-toolbar .lt-create{grid-column:1/-1;justify-content:center}
  .lt-toolbar .sel{grid-column:1/-1;width:100%}
  .lt-today{padding:0 14px;font-size:13px!important}.lt-filter-btn{width:44px}
  .lt-filter-panel{flex-direction:column;align-items:stretch;padding:10px}.lt-filter-panel label,.lt-filter-panel .lt-filter-date{min-width:0;width:100%;height:48px}.lt-filter-panel input,.lt-filter-panel .vdp-wrap .vdp-display{font-size:16px}.lt-filter-panel button{height:48px;font-size:16px}
  .lt-month{height:34px;padding:0 12px;font-size:12px}
  .lt-scroll{max-height:calc(100dvh - 250px);touch-action:pan-x pan-y}
  .lt-head{grid-template-columns:122px max-content}
  .lt-corner{height:50px;padding:0 10px;font-size:12px}
  .lt-days{grid-template-columns:repeat(var(--lt-days),112px)}
  .lt-day{height:50px}
  .lt-day b{font-size:12px}.lt-day span{font-size:11px}
  .lt-body{width:max-content;min-width:100%}
  .lt-group{grid-template-columns:122px max-content}
  .lt-group-name{height:38px;padding:0 10px;font-size:12px}
  .lt-group-days{grid-template-columns:repeat(var(--lt-days),112px)}
  .lt-group-days span{height:38px;font-size:12px}
  .lt-row{grid-template-columns:122px max-content;min-height:54px}
  .lt-car{padding:7px 10px}
  .lt-car .lt-id{font-size:10px}.lt-car b{font-size:12px;line-height:1.25}.lt-car em{font-size:10px}
  .lt-grid{grid-template-columns:repeat(var(--lt-days),112px);grid-auto-rows:60px}
  .lt-head{grid-template-columns:140px max-content}
  .lt-corner{width:140px;min-width:140px;height:56px}
  .lt-group{grid-template-columns:140px max-content}
  .lt-row{grid-template-columns:140px max-content;min-height:60px}
  .lt-car{min-width:140px;width:140px;padding:8px 10px}
  .lt-car b{font-size:13px}
  .lt-group-days{grid-template-columns:repeat(var(--lt-days),112px)}
  .lt-days{grid-template-columns:repeat(var(--lt-days),112px)}
  .lt-day{height:56px}
  .lt-date-num{font-size:13px}
  .lt-book{height:22px;font-size:11px;padding:0 6px;margin-left:2px;margin-right:2px;margin-top:calc(3px + var(--lane) * 20px)}
  .lt-summary-row{grid-template-columns:122px max-content}
  .lt-summary-label{width:122px;min-width:122px;padding:0 10px;min-height:34px;font-size:10px}
  .lt-summary-days{grid-template-columns:repeat(var(--lt-days),112px)}
  .lt-sum-val{min-height:34px;min-width:112px;font-size:11px}
  .lt-popover{left:50%!important;right:auto;top:auto!important;bottom:calc(78px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);width:min(330px,calc(100vw - 24px));justify-content:center;flex-wrap:wrap}
  .lt-popover:after{display:none}
  .lt-popover-note{position:static;flex-basis:100%;color:#666}
}
.overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:10200;align-items:center;justify-content:center;padding:1rem;}
.modal{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--rl);width:min(640px,100%);max-width:900px;max-height:90vh;overflow:hidden;box-shadow:0 40px 100px rgba(0,0,0,.7);display:flex;flex-direction:column;padding:0;}
.modal.modal-don{width:95vw;max-width:900px;}
.modal.modal-xe{width:min(720px,100%);}
.modal-head{flex-shrink:0;padding:1.2rem 1.6rem 0;margin-bottom:0!important;}
#modal-body{flex:1 1 auto;overflow-y:auto;min-height:0;padding:1rem 1.6rem;-webkit-overflow-scrolling:touch;}
.modal-foot{display:flex;justify-content:flex-end;gap:8px;flex-shrink:0;margin-top:0!important;padding:1rem 1.6rem 1.3rem;background:var(--bg2);border-top:1px solid var(--border);}
.don-form-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:4px;}
.don-panel{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r);padding:14px 16px;}
.don-panel-title{font-size:11px;font-weight:800;color:var(--t2);text-transform:uppercase;letter-spacing:.55px;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border);}
.don-panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;align-items:end;}
.don-panel-grid .form-group{display:flex;flex-direction:column;gap:5px;margin:0;}
.don-panel-grid .form-group label{min-height:2.5em;line-height:1.2;display:flex;align-items:flex-end;padding-bottom:1px;}
.don-panel-grid .form-group>input,
.don-panel-grid .form-group>select,
.don-panel-grid .form-group>textarea{width:100%;box-sizing:border-box;}
.don-panel-grid .form-group.full,.don-pay-section{grid-column:1/-1;}
.don-khach-pick{display:flex;gap:8px;align-items:stretch;}
.don-khach-pick select,.don-khach-pick .msel-wrap{flex:1;min-width:0;}
.don-khach-nv label{min-height:auto!important;}
.don-panel-grid .form-group.full>label{min-height:auto;}
.don-khach-pick .btn{white-space:nowrap;padding:8px 10px;}
.don-ck-row{display:flex;gap:8px;align-items:stretch;width:100%;}
.don-ck-row input{flex:1 1 0;min-width:72px;width:auto;}
.don-ck-row select{width:68px;min-width:68px;flex:0 0 68px;padding:8px 6px;font-size:12px;}
.don-pay-section{margin-top:4px;padding-top:10px;border-top:1px solid var(--border);}
.don-pay-title{font-size:11px;font-weight:700;color:var(--t2);text-transform:uppercase;letter-spacing:.45px;margin-bottom:8px;}
/* ── DON TAB MODAL ── */
.don-tab-modal{display:flex;flex-direction:column;height:100%;min-height:0}
.modal.modal-don #modal-body{padding:0;display:flex;flex-direction:column;overflow:hidden;min-height:0}
.don-tab-bar{display:flex;gap:0;border-bottom:1px solid var(--border);padding:0 16px;overflow-x:auto;flex-shrink:0;-webkit-overflow-scrolling:touch}
.don-tab-btn{padding:10px 14px;cursor:pointer;font-size:12px;color:var(--t2);border:none;border-bottom:2px solid transparent;background:none;white-space:nowrap;display:flex;align-items:center;gap:5px;font-family:'Be Vietnam Pro',sans-serif}
.don-tab-btn.active{color:var(--t);border-bottom-color:var(--accent);font-weight:600}
.don-tab-btn:hover:not(.active){color:var(--t);background:var(--bg3)}
.don-tab-badge{background:var(--amber);color:#fff;border-radius:9px;font-size:10px;padding:0 5px;line-height:16px}
.don-tab-panel{display:none;padding:16px;overflow-y:auto;flex:1;min-height:0;-webkit-overflow-scrolling:touch}
.don-tab-panel.active{display:block}
.don-section-title{font-size:11px;font-weight:600;color:var(--t2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}
.btn-sm{padding:6px 12px;font-size:12px;min-height:32px}
.don-km-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.don-km-card{background:var(--bg2);border:1px solid var(--border2);border-radius:10px;padding:14px}
.don-km-label{font-size:12px;color:var(--t2);margin-bottom:8px;display:flex;align-items:center;gap:5px}
.don-km-input{width:100%;font-size:18px;font-weight:700;background:none;border:none;border-bottom:1px solid var(--border2);color:var(--t);padding:4px 0;outline:none}
.don-km-sub{font-size:11px;color:var(--t3);margin-top:6px}
.don-km-diff-box{background:var(--bg2);border:1px solid var(--border2);border-radius:10px;padding:12px;margin-top:12px}
.don-km-diff-row{display:flex;justify-content:space-between;padding:5px 0;font-size:13px;border-bottom:1px solid var(--border)}
.don-km-diff-row:last-child{border:none}
.don-svc-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.don-svc-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}
.don-svc-icon{width:32px;height:32px;border-radius:8px;background:var(--bg3);display:flex;align-items:center;justify-content:center;color:var(--t2);flex-shrink:0}
.don-svc-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}
.don-svc-name{font-size:13px;background:none;border:none;border-bottom:1px solid var(--border2);color:var(--t);width:100%;outline:none}
.don-svc-note{font-size:11px;color:var(--t2);background:none;border:none;width:100%;outline:none}
.don-svc-right{display:flex;align-items:center;gap:6px;flex-shrink:0}
.don-svc-price{width:90px;font-size:13px;font-weight:600;text-align:right;background:none;border:none;border-bottom:1px solid var(--border2);color:var(--t);outline:none}
.don-svc-total{display:flex;justify-content:flex-end;gap:8px;padding:10px 0;font-size:13px}
.don-pay-summary{background:var(--bg2);border:1px solid var(--border2);border-radius:10px;padding:14px}
.don-pay-row{display:flex;justify-content:space-between;padding:6px 0;font-size:13px;border-bottom:1px solid var(--border)}
.don-pay-row:last-child{border:none}
.don-pay-total{font-weight:700;font-size:14px}
.don-pay-remain{font-weight:700;font-size:14px}
.don-pay-divider{height:1px;background:var(--border2);margin:8px 0}
.don-nv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin-top:8px}
.don-nv-item{background:var(--bg2);border:1px solid var(--border2);border-radius:8px;padding:10px 12px}
.don-nv-label{font-size:10px;color:var(--t3);margin-bottom:3px}
.don-nv-val{font-size:13px;font-weight:600}
.don-nv-time{font-size:10px;color:var(--t3);margin-top:2px}
.don-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.don-photo-slot{aspect-ratio:4/3;background:var(--bg2);border-radius:8px;border:1px dashed var(--border2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--t3);font-size:11px;overflow:hidden;position:relative}
.don-photo-slot.has-photo{border-style:solid;cursor:default}
.don-photo-slot.add-slot{cursor:pointer}
.don-photo-slot.add-slot:hover{border-color:var(--accent);color:var(--accent)}
.don-photo-slot img{width:100%;height:100%;object-fit:cover}
.don-photo-del{position:absolute;top:4px;right:4px;background:rgba(0,0,0,.5);border:none;border-radius:50%;width:20px;height:20px;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;padding:0}
.don-log-item{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}
.don-log-dot{width:8px;height:8px;border-radius:50%;background:var(--t3);margin-top:5px;flex-shrink:0}
.don-log-dot.green{background:var(--green)}
.don-log-dot.blue{background:var(--blue)}
.don-log-dot.orange{background:var(--amber)}
.don-log-dot.red{background:var(--red)}
.don-log-action{font-size:13px;font-weight:500}
.don-log-meta{font-size:11px;color:var(--t3);margin-top:2px}
@media(max-width:767px){
  .don-km-grid{grid-template-columns:1fr}
  .don-photo-grid{grid-template-columns:repeat(2,1fr)}
  .don-tab-btn{padding:8px 10px;font-size:11px}
  .don-tab-panel{padding:12px}
}
.don-popup-backdrop{display:none;position:fixed;inset:0;z-index:9998;background:rgba(0,0,0,.4);}
.don-popup-backdrop.open{display:block;}
.don-popup{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:9999;width:660px;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);overflow:auto;background:var(--bg);border:1px solid var(--border2);border-radius:12px;box-shadow:0 8px 40px rgba(0,0,0,.3);}
.don-popup.open{display:block;}
.don-popup-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px 14px;border-bottom:1px solid var(--border);}
.don-popup-title{display:flex;align-items:center;gap:8px;min-width:0;flex:1;}
.don-popup-title i{font-size:16px;color:var(--t3);flex-shrink:0;}
.don-popup-title span{font-size:17px;font-weight:700;color:var(--t);line-height:1.3;word-break:break-word;}
.don-popup-head-right{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.don-popup-pill{padding:5px 12px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap;}
.don-popup-pill.st-datruoc{background:rgba(79,125,204,.15);color:#5b8fd9;}
.don-popup-pill.st-dangthue{background:rgba(63,136,76,.15);color:#3f884c;}
.don-popup-pill.st-hoanthanh{background:rgba(105,112,122,.18);color:var(--t2);}
.don-popup-pill.st-huy{background:rgba(220,53,69,.15);color:var(--red);}
.don-popup-close{width:32px;height:32px;border-radius:8px;border:1px solid var(--border2);background:var(--bg3);color:var(--t2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;}
.don-popup-close:hover{color:var(--t);border-color:var(--border2);}
.don-popup-body{display:grid;grid-template-columns:1fr 1fr;gap:0;border-bottom:1px solid var(--border);}
.don-popup-col{padding:14px 20px 16px;}
.don-popup-col+.don-popup-col{border-left:1px solid var(--border);}
.don-popup-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:6px 0;font-size:13px;line-height:1.45;}
.don-popup-row .lbl{color:var(--t2);flex-shrink:0;text-align:left;}
.don-popup-row .val{color:var(--t);text-align:right;word-break:break-word;}
.don-popup-row .val.bold{font-weight:700;}
.don-popup-row.remain{margin-top:4px;padding-top:10px;border-top:1px dashed var(--border);}
.don-popup-row.remain .lbl{font-weight:700;color:var(--t);}
.don-popup-row.remain .val{font-weight:700;font-size:14px;}
.don-popup-foot{padding:14px 20px 18px;}
.don-popup-foot .btn{width:100%;justify-content:center;min-height:44px;font-size:14px;font-weight:600;}
.don-popup-foot .btn.ac{background:var(--blue);border-color:var(--blue);color:#fff;}
.bc-html-chart{padding:6px 2px 2px;font-family:'Be Vietnam Pro',sans-serif}
.bc-html-inner{display:flex;gap:8px;min-height:210px}
.bc-html-yaxis{display:flex;flex-direction:column;justify-content:space-between;width:44px;flex-shrink:0;font-size:10px;color:var(--t2);text-align:right;padding:0 0 20px;line-height:1}
.bc-html-plot{flex:1;position:relative;min-width:0}
.bc-html-grid{position:absolute;inset:0 0 20px 0;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}
.bc-html-grid span{display:block;border-top:1px solid var(--border);width:100%}
.bc-html-cols{display:flex;align-items:flex-end;gap:3px;height:190px;position:relative;z-index:1;padding-bottom:0}
.bc-html-col{flex:1;min-width:28px;max-width:56px;display:flex;flex-direction:column;align-items:center;height:100%}
.bc-html-barwrap{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px;padding:0 3px}
.bc-html-bar{border-radius:4px 4px 0 0;min-height:0;transition:height .25s}
.bc-html-bar.dt{background:var(--blue);opacity:.55;width:48%;max-width:18px}
.bc-html-bar.thu{background:var(--green);opacity:.78;width:38%;max-width:14px}
.bc-html-xlbl{font-size:10px;color:var(--t2);margin-top:5px;font-weight:600;white-space:nowrap}
.bc-html-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;padding-left:52px;font-size:11px;color:var(--t2);font-weight:600}
.bc-leg-item{display:inline-flex;align-items:center;gap:6px}
.bc-leg-sq{display:inline-block;width:12px;height:8px;border-radius:2px;flex-shrink:0}
.bc-leg-sq.dt{background:var(--blue);opacity:.75}
.bc-leg-sq.thu{background:var(--green);opacity:.85}
[data-theme="light"] .bc-html-chart,[data-theme="light"] .bc-html-yaxis span,[data-theme="light"] .bc-html-xlbl,[data-theme="light"] .bc-html-legend,[data-theme="light"] .bc-leg-item{color:#5a5854!important}
[data-theme="light"] .mob-bc-lbl{color:#5a5854!important}
[data-theme="light"] .mob-bc-month,[data-theme="light"] .mob-bc-val{color:#1a1916!important}
.mob-bc-card{background:var(--bg2);border:1px solid var(--border);border-radius:13px;padding:13px 14px;color:var(--t)}
.mob-bc-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.mob-bc-month{font-weight:700;font-size:14px;color:var(--t)}
.mob-bc-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;font-size:12px}
.mob-bc-lbl{display:block;color:var(--t2);font-size:11px;font-weight:600;margin-bottom:2px}
.mob-bc-val{display:block;font-size:13px;font-weight:700;color:var(--t)}
.mob-bc-val.mob-bc-green{color:var(--green)!important}
.mob-bc-val.mob-bc-amber{color:var(--amber)!important}
.mob-bc-val.mob-bc-blue{color:var(--blue)!important}
.mob-khuvuc-card{background:var(--bg2);border:1px solid var(--border);border-radius:13px;padding:13px 14px}
.mob-khuvuc-hd{display:flex;align-items:flex-start;gap:10px}
.mob-khuvuc-icon{width:36px;height:36px;border-radius:10px;background:var(--blue-bg);color:var(--blue);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px}
.mob-khuvuc-info{flex:1;min-width:0}
.mob-khuvuc-name{font-weight:700;font-size:14px;color:var(--t)}
.mob-khuvuc-addr{font-size:12px;color:var(--t2);margin-top:3px}
.mob-khuvuc-acts{flex-shrink:0}
.mob-bc-val.mob-bc-accent{color:var(--accent)!important}
.mob-bc-full{grid-column:1/-1}
.lt-prep-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;border:1px solid var(--border2);background:var(--bg3);color:var(--amber);font-size:13px;cursor:pointer;margin-top:6px;padding:0;flex-shrink:0}
.lt-prep-icon.doing{color:#5b8fd9}
.lt-prep-icon.ready{color:var(--green)}
.lt-sticky.lt-car{position:sticky;left:0;z-index:6;background:var(--bg)}
.lt-car .lt-prep-wrap{display:flex;align-items:center;gap:6px;margin-top:4px}
.lt-type-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-left:auto}
@media(min-width:768px){
  .lt-type-sel,.lt-toolbar .msel-wrap:has(#lich-type-filter){display:none!important}
  .lt-toolbar{
    display:grid;
    grid-template-columns:auto auto auto 1fr;
    grid-template-rows:auto auto;
    gap:8px 10px;
    align-items:center;
    overflow:visible;
  }
  .lt-toolbar .lt-search{grid-column:1;grid-row:1}
  .lt-toolbar .lt-search .si{width:168px;min-width:140px;max-width:200px;height:40px}
  .lt-toolbar .lt-search-btn{width:40px;height:40px}
  .lt-toolbar>.btn.lt-filter-btn{grid-column:2;grid-row:1}
  .lt-toolbar>.btn.lt-create{grid-column:3;grid-row:1}
  .lt-toolbar .lt-type-chips{grid-column:4;grid-row:1;justify-self:end;margin-left:0}
  .lt-toolbar .lt-month-chips{grid-column:1/-1;grid-row:2;width:100%;flex:none;overflow:visible}
  .lt-month-chip{height:36px;padding:0 12px;font-size:12px;flex:0 0 auto}
  .lt-toolbar>.btn.lt-filter-btn,.lt-toolbar>.btn.lt-create{height:40px;min-height:40px}
}
.lt-type-chip{padding:6px 12px;border-radius:20px;border:1px solid var(--border2);background:var(--bg3);color:var(--t2);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;font-family:'Be Vietnam Pro',sans-serif}
.lt-type-chip:hover{color:var(--t);border-color:var(--border2)}
.lt-type-chip.active{background:rgba(232,200,122,.15);border-color:var(--accent);color:var(--accent)}
.prep-popup-backdrop{display:none;position:fixed;inset:0;z-index:10050;background:rgba(0,0,0,.35)}
.prep-popup-backdrop.open{display:block}
.prep-popup{display:none;position:fixed;z-index:10051;width:300px;max-width:calc(100vw - 24px);background:var(--bg2);border:1px solid var(--border2);border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,.22)}
.prep-popup.open{display:block}
.lt-car.lt-car-prep{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.lt-car.lt-car-prep:active{background:var(--bg3)}
.lt-car.lt-car-locked{opacity:.85}
.prep-popup-head{padding:12px 14px 8px;border-bottom:1px solid var(--border)}
.prep-popup-title{display:block;font-size:15px;font-weight:800;color:var(--t);line-height:1.3}
.prep-popup-body{padding:10px 14px 14px}
.prep-field{margin-bottom:10px}
.prep-field label{display:block;font-size:12px;color:var(--t2);margin-bottom:4px;font-weight:500}
.prep-field .sel,.prep-field .si,.prep-field textarea{width:100%;font-size:13px;box-sizing:border-box}
.prep-field textarea{min-height:56px;resize:vertical}
.prep-popup-save{margin-top:4px;padding:8px 18px;border:none;border-radius:6px;background:#4f82d4;color:#fff;font-family:'Be Vietnam Pro',sans-serif;font-size:13px;font-weight:700;cursor:pointer;min-height:36px}
.prep-popup-save:active{opacity:.9}
.modal-head{display:flex;align-items:center;justify-content:space-between;}
.modal-head h3{font-size:17px;font-weight:700;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.form-group{display:flex;flex-direction:column;gap:5px;}
.form-group.full{grid-column:1/-1;}
.form-group label{font-size:11px;color:var(--t2);font-weight:600;text-transform:uppercase;letter-spacing:.4px;}
.form-group input,.form-group select,.form-group textarea{padding:9px 11px;border-radius:var(--r);border:1px solid var(--border2);background:var(--bg3);color:var(--t);font-size:13px;font-family:'Be Vietnam Pro',sans-serif;outline:none;transition:border .2s;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent);}
.form-group textarea{resize:vertical;min-height:64px;}
#modal-body,.modal,.card,.toolbar,.form-group,.lt-filter-panel,.mob-sheet,.mob-sheet-body,.mquick-sheet,.mquick-body{position:relative;}
input[type="date"],input[type="time"],input[type="datetime-local"]{position:relative;z-index:5;}
input[type="date"]:focus,input[type="time"]:focus,input[type="datetime-local"]:focus{z-index:10030;}
input[type="date"]::-webkit-calendar-picker-indicator,input[type="time"]::-webkit-calendar-picker-indicator,input[type="datetime-local"]::-webkit-calendar-picker-indicator{position:relative;z-index:10031;cursor:pointer;}
.form-group:focus-within,.toolbar:focus-within,.lt-filter-panel.open,.mob-sheet-body:focus-within,.mquick-body:focus-within{z-index:10020;}
.form-group:focus-within:has(select:focus){z-index:auto;}
body.modal-open .toolbar:focus-within,
body.modal-open .card-head .toolbar,
body.modal-open .card-head:focus-within{z-index:auto!important;}
.overlay:has(input[type="date"]:focus),.overlay:has(input[type="time"]:focus),.overlay:has(input[type="datetime-local"]:focus),.overlay:has(select:focus){z-index:10200;}
.modal{position:relative;z-index:1;}
.modal:has(input[type="date"]:focus),.modal:has(input[type="time"]:focus),.modal:has(input[type="datetime-local"]:focus),.modal:has(select:focus){z-index:2;}
.mob-sheet:has(input[type="date"]:focus),.mob-sheet:has(input[type="time"]:focus),.mob-sheet:has(input[type="datetime-local"]:focus),.mob-sheet:has(select:focus),.mquick-sheet:has(input[type="date"]:focus),.mquick-sheet:has(input[type="time"]:focus),.mquick-sheet:has(input[type="datetime-local"]:focus),.mquick-sheet:has(select:focus){z-index:10010;}
.modal:has(input[type="date"]:focus),.modal:has(input[type="time"]:focus),.modal:has(input[type="datetime-local"]:focus),.modal:has(select:focus),.mob-sheet:has(input[type="date"]:focus),.mob-sheet:has(input[type="time"]:focus),.mob-sheet:has(input[type="datetime-local"]:focus),.mob-sheet:has(select:focus),.mquick-sheet:has(input[type="date"]:focus),.mquick-sheet:has(input[type="time"]:focus),.mquick-sheet:has(input[type="datetime-local"]:focus),.mquick-sheet:has(select:focus),.mob-sheet-body:has(input[type="date"]:focus),.mob-sheet-body:has(input[type="time"]:focus),.mob-sheet-body:has(input[type="datetime-local"]:focus),.mob-sheet-body:has(select:focus),.mquick-body:has(input[type="date"]:focus),.mquick-body:has(input[type="time"]:focus),.mquick-body:has(input[type="datetime-local"]:focus),.mquick-body:has(select:focus),.don-tab-panel:has(select:focus),.don-form-layout:has(select:focus),.don-panel:has(select:focus){overflow:visible;}
.price-box{background:var(--bg4);border:1px solid var(--border);border-radius:var(--r);padding:12px 14px;}
.pb-row{display:flex;justify-content:space-between;font-size:13px;padding:3px 0;color:var(--t2);}
.pb-total{font-size:15px;font-weight:700;border-top:1px solid var(--border);margin-top:6px;padding-top:8px;color:var(--t);}
/* HÓA ĐƠN */
.hd-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:300;align-items:flex-start;justify-content:center;padding:1rem;overflow-y:auto;}
.hd-overlay.show{display:flex;}
.hd-wrap{background:#fff;color:#111;width:100%;max-width:520px;margin:auto;border-radius:8px;overflow:hidden;font-family:'Be Vietnam Pro',sans-serif;}
.hd-toolbar{background:#f5f5f5;padding:10px 14px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;border-bottom:1px solid #ddd;}
.hd-toolbar select,.hd-toolbar input{padding:5px 8px;border-radius:5px;border:1px solid #ccc;font-size:12px;font-family:'Be Vietnam Pro',sans-serif;}
.hd-toolbar .hd-btn{padding:6px 14px;border-radius:5px;border:none;cursor:pointer;font-size:12px;font-weight:600;font-family:'Be Vietnam Pro',sans-serif;}
.hd-btn-print{background:#1a1a1a;color:#fff;}
.hd-btn-img{background:#e8c87a;color:#111;}
.hd-btn-close{background:#ddd;color:#333;margin-left:auto;}
#hd-body{padding:16px 20px;}
.hd-logo-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.hd-logo-row img{width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0;}
.hd-logo-text{text-align:left;}
.hd-company{font-size:17px;font-weight:800;color:#111;letter-spacing:-0.3px;}
.hd-company-sub{font-size:12px;color:#333;margin-top:2px;font-weight:500;}
.hd-title{text-align:center;font-size:17px;font-weight:700;letter-spacing:1px;margin:8px 0 4px;border-top:2px solid #111;border-bottom:2px solid #111;padding:6px 0;}
.hd-meta{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin:8px 0;font-size:11px;}
.hd-meta-item{display:flex;gap:4px;align-items:flex-start;}
.hd-meta-label{color:#444;flex-shrink:0;font-weight:500;}
.hd-meta-val{font-weight:700;color:#111;}
.hd-table{width:100%;border-collapse:collapse;font-size:12px;margin:12px 0;}
.hd-table th{background:#1a1a1a;color:#fff;padding:6px 8px;text-align:left;font-size:11px;}
.hd-table td{padding:6px 8px;border-bottom:1px solid #ddd;color:#111;font-size:11px;font-weight:500;}
.hd-table tr:last-child td{border-bottom:none;}
.hd-table tr:nth-child(even) td{background:#f9f9f9;}
.hd-total-row{display:flex;justify-content:space-between;padding:4px 0;font-size:12px;color:#222;}
.hd-total-row.main{font-size:14px;font-weight:800;border-top:2px solid #111;padding-top:7px;margin-top:4px;color:#111;}
.hd-total-row.paid{color:#c0392b;font-weight:600;}
.hd-total-row.remain{color:#c0392b;font-weight:700;}
.hd-qr-row{display:flex;gap:12px;align-items:flex-start;margin-top:10px;padding-top:10px;border-top:1px dashed #ccc;}
.hd-qr-img{width:76px;height:76px;flex-shrink:0;}
.hd-bank-info{font-size:12px;flex:1;}
.hd-bank-name{font-weight:800;font-size:14px;margin-bottom:6px;color:#111;}
.hd-bank-row{display:flex;gap:6px;margin-bottom:3px;align-items:center;}
.hd-bank-label{color:#444;min-width:75px;font-weight:500;}
.hd-bank-row b{color:#111;font-weight:700;}
.hd-sign-row{display:flex;justify-content:space-around;margin-top:20px;padding-top:16px;border-top:1px solid #eee;font-size:12px;text-align:center;}
.hd-sign-box{width:120px;}
.hd-sign-title{font-weight:700;margin-bottom:40px;}
.hd-note{font-size:11px;color:#888;text-align:center;margin-top:12px;font-style:italic;}
.hd-settings{background:#f9f9f9;padding:14px 28px;border-top:2px dashed #ddd;}
.hd-settings h4{font-size:13px;font-weight:700;margin-bottom:10px;color:#333;}
.hd-set-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.hd-set-item{display:flex;flex-direction:column;gap:3px;}
.hd-set-item label{font-size:11px;color:#666;}
.hd-set-item input{padding:6px 8px;border:1px solid #ccc;border-radius:4px;font-size:12px;font-family:'Be Vietnam Pro',sans-serif;}
.hd-set-item.full{grid-column:1/-1;}
@media print{
  .hd-toolbar,.hd-settings{display:none!important;}
  .hd-overlay{position:static;padding:0;background:white;overflow:visible;}
  .hd-wrap{border-radius:0;max-width:100%;}
  #hd-body{padding:16px;}
}
.toast{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r);padding:11px 16px;font-size:13px;z-index:999;display:none;align-items:center;gap:9px;box-shadow:0 8px 30px rgba(0,0,0,.5);}
.toast.show{display:flex;}
.ts{border-color:rgba(74,222,128,.3);}.ts i{color:var(--green);}
.te{border-color:rgba(248,113,113,.3);}.te i{color:var(--red);}
::-webkit-scrollbar{width:5px;height:5px;}
::-webkit-scrollbar-thumb{background:var(--bg4);border-radius:3px;}
@media(max-width:768px){
  .dash-grid{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
  .don-form-layout{grid-template-columns:1fr;}
  .don-panel-grid{grid-template-columns:1fr;}
  .stats-grid{grid-template-columns:1fr 1fr;}
  .stat-card{padding:.75rem;}
  .stat-val{font-size:16px;}
  .card{padding:12px;}
  table{font-size:12px;}
  th,td{padding:7px 5px;}
  .ph{padding:12px;}
  .ph h1{font-size:20px;}
}
@media(max-width:480px){
  .stats-grid{grid-template-columns:1fr;}
  .si{width:100%;}
  .toolbar{flex-wrap:wrap;}
  .overlay{padding:.25rem;}
  .modal{max-height:95vh;}
}

/* ═══════════════════════════════════════════════════════
   MOBILE RESPONSIVE — VietRent v19
   Breakpoint ≤767px: ẩn sidebar, bật bottom nav + cards
═══════════════════════════════════════════════════════ */
:root{
  --mob-nav-h:60px;
  --mob-safe-b:env(safe-area-inset-bottom,0px);
}
@media(max-width:767px){
  .main{
    margin-left:0!important;
    padding:.75rem .9rem!important;
    padding-bottom:calc(var(--mob-nav-h) + var(--mob-safe-b) + 72px)!important;
    min-height:100dvh;
  }
  .ph h1{font-size:18px;}
  .stats-grid{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:.75rem;}
  .stat-card{padding:.7rem .8rem;}
  .stat-val{font-size:17px;}
  .card{padding:.85rem;border-radius:14px;}
  .card-head{flex-wrap:wrap;gap:6px;margin-bottom:.6rem;}
  /* Ẩn nút Thêm trong toolbar (dùng FAB) */
  .card-head .toolbar .btn.ac{display:none;}
  /* Table ẩn, mob-card-list hiện */
  .tw>table{display:none;}
  #tab-taichi .tw>table{display:none;}
  .mob-card-list{display:flex!important;}
  /* Modal bottom-sheet */
  .overlay{padding:0;align-items:flex-end;background:rgba(0,0,0,.7);}
  .modal{width:100%;max-width:100%;border-radius:22px 22px 0 0;max-height:92dvh;padding:1rem 1rem calc(1.5rem + var(--mob-safe-b));margin:0;}
  .form-grid{grid-template-columns:1fr;gap:10px;}
  .form-group input,.form-group select,.form-group textarea{min-height:46px;font-size:14px;padding:10px 12px;}
  .form-group textarea{min-height:80px;}
  .modal-foot{flex-direction:row;gap:10px;padding-top:.8rem;}
  .modal-foot .btn{flex:1;justify-content:center;min-height:46px;font-size:14px;}
  .lich-wrap{-webkit-overflow-scrolling:touch;}
}
/* ── Bottom Nav ── */
.mob-bottom-nav{display:none;}
@media(max-width:767px){
  .mob-bottom-nav{
    display:flex;position:fixed;bottom:0;left:0;right:0;
    height:calc(var(--mob-nav-h) + var(--mob-safe-b));
    padding-bottom:max(var(--mob-safe-b),8px);
    background:rgba(15,15,13,.96);
    backdrop-filter:blur(24px) saturate(180%);
    -webkit-backdrop-filter:blur(24px) saturate(180%);
    border-top:1px solid rgba(255,255,255,.1);
    z-index:9000;
  }
  .mob-nav-btn{
    flex:1;display:flex;flex-direction:column;
    align-items:center;justify-content:center;gap:3px;
    border:none;background:transparent;
    color:var(--t3);font-family:'Be Vietnam Pro',sans-serif;
    font-size:10px;font-weight:600;cursor:pointer;
    padding:6px 2px;min-height:44px;
    -webkit-tap-highlight-color:transparent;transition:color .15s;
  }
  .mob-nav-btn i{font-size:22px;transition:transform .15s;}
  .mob-nav-btn.active{color:var(--accent);}
  .mob-nav-btn.active i{transform:translateY(-2px);color:var(--accent);}
  .mob-nav-btn:active{opacity:.7;}
}
/* ── FAB ── */
.mob-fab{display:none;}
@media(max-width:767px){
  .mob-fab{
    display:flex;position:fixed;right:18px;
    bottom:calc(var(--mob-nav-h) + var(--mob-safe-b) + 12px);
    width:56px;height:56px;border-radius:18px;
    background:var(--accent);color:#0f0f0d;
    border:none;font-size:28px;
    align-items:center;justify-content:center;
    box-shadow:0 6px 24px rgba(232,200,122,.4);
    z-index:8999;cursor:pointer;
    -webkit-tap-highlight-color:transparent;
    transition:transform .15s,box-shadow .15s;
  }
  .mob-fab:active{transform:scale(.92);}
  .mob-fab.hidden{display:none!important;}
}
/* ── Sheets ── */
.mob-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.65);
  z-index:9500;opacity:0;pointer-events:none;transition:opacity .25s;
}
.mob-overlay.open{opacity:1;pointer-events:all;z-index:9800;}
.mob-sheet{
  position:fixed;left:0;right:0;bottom:0;
  background:var(--bg2);border-radius:22px 22px 0 0;
  border:1px solid rgba(255,255,255,.1);border-bottom:none;
  z-index:9501;transform:translateY(100%);
  transition:transform .3s cubic-bezier(.32,0,.15,1);
  max-height:92dvh;display:flex;flex-direction:column;
}
.mob-sheet.open{transform:translateY(0);z-index:9801;}
.mob-sheet-handle{
  width:40px;height:4px;border-radius:2px;
  background:rgba(255,255,255,.15);margin:12px auto 0;flex-shrink:0;
}
.mob-sheet-hdr{
  display:flex;align-items:center;
  padding:14px 18px 10px;flex-shrink:0;
  border-bottom:1px solid var(--border);
}
.mob-sheet-title{font-size:17px;font-weight:700;flex:1;}
.mob-sheet-body{
  flex:1;overflow-y:auto;padding:14px 18px;
  padding-bottom:calc(14px + var(--mob-safe-b));
  -webkit-overflow-scrolling:touch;
}
.mob-sheet-body::-webkit-scrollbar{display:none;}
.mob-sheet-foot{
  display:flex;gap:10px;
  padding:12px 18px calc(12px + max(var(--mob-safe-b),12px));
  border-top:1px solid var(--border);flex-shrink:0;
  background:var(--bg2);
  position:sticky;bottom:0;z-index:2;
}
/* ── Card list ── */
.mob-card-list{display:none;flex-direction:column;gap:10px;padding-top:6px;}
.mob-card{
  background:var(--bg2);border:1px solid var(--border);
  border-radius:14px;overflow:hidden;position:relative;
  animation:mobUp .18s ease both;
}
@keyframes mobUp{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
.mob-card-stripe{position:absolute;left:0;top:0;bottom:0;width:3px;}
.mob-card-head{display:flex;align-items:flex-start;gap:11px;padding:12px 13px 10px 17px;}
.mob-card-avatar{
  width:40px;height:40px;border-radius:11px;
  background:var(--bg4);display:flex;align-items:center;justify-content:center;
  font-size:15px;font-weight:800;color:var(--accent);
  flex-shrink:0;text-transform:uppercase;font-family:monospace;
}
.mob-card-meta{flex:1;min-width:0;}
.mob-card-name{font-size:14px;font-weight:700;}
.mob-card-sub{font-size:11px;color:var(--t2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mob-card-right{text-align:right;flex-shrink:0;}
.mob-card-right .amt{font-size:15px;font-weight:800;color:var(--accent);font-family:monospace;}
.mob-card-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border);}
.mob-cf{padding:9px 13px;border-right:1px solid var(--border);}
.mob-cf:nth-child(even){border-right:none;}
.mob-cf-label{font-size:10px;color:var(--t3);font-weight:600;text-transform:uppercase;letter-spacing:.5px;}
.mob-cf-val{font-size:12px;font-weight:600;color:var(--t);margin-top:2px;}
.mob-cf-val.red{color:var(--red);} .mob-cf-val.green{color:var(--green);} .mob-cf-val.amber{color:var(--amber);}
.mob-card-acts{display:flex;gap:7px;padding:9px 12px;border-top:1px solid var(--border);}
.mob-card-act{
  flex:1;min-height:36px;border-radius:8px;border:1px solid var(--border2);
  background:var(--bg3);color:var(--t2);font-family:'Be Vietnam Pro',sans-serif;
  font-size:12px;font-weight:700;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:5px;
  -webkit-tap-highlight-color:transparent;transition:.12s;
}
.mob-card-act:active{transform:scale(.94);}
.mob-card-act.primary{background:rgba(232,200,122,.12);border-color:var(--accent);color:var(--accent);}
/* ── TC row ── */
.mob-tc-list{display:none;flex-direction:column;gap:8px;padding-top:6px;}
.mob-tc-row{display:flex;align-items:center;gap:12px;background:var(--bg2);border:1px solid var(--border);border-radius:13px;padding:12px 13px;}
.mob-tc-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0;}
.mob-tc-icon.thu{background:var(--green-bg);color:var(--green);}
.mob-tc-icon.chi{background:var(--red-bg);color:var(--red);}
.mob-tc-info{flex:1;min-width:0;}
.mob-tc-title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mob-tc-sub{font-size:11px;color:var(--t3);margin-top:2px;}
.mob-tc-right{text-align:right;flex-shrink:0;}
.mob-tc-amount{font-size:14px;font-weight:800;font-family:monospace;}
.mob-tc-amount.thu{color:var(--green);} .mob-tc-amount.chi{color:var(--red);}
.mob-tc-date{font-size:10px;color:var(--t3);margin-top:3px;}
/* ── Thu Chi toolbar ── */
#tab-thuchi .card-head.tc-toolbar{flex-direction:column;align-items:stretch;gap:10px}
.tc-toolbar-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
.tc-toolbar-actions{display:flex;gap:6px}
.tc-date-bar{display:flex;align-items:stretch;background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r)}
.tc-date-fields{display:flex;align-items:center;gap:4px;flex:1 1 auto;min-width:0;padding:6px 8px;border-right:1px solid var(--border2)}
.tc-date-ico{font-size:14px;color:var(--t3);flex-shrink:0}
.tc-date-lbl{font-size:12px;color:var(--t2);white-space:nowrap;font-weight:500}
.tc-date-sep{font-size:12px;color:var(--t3);padding:0 2px;flex-shrink:0}
.tc-date-fields input[type="date"]{flex:1;min-width:0;border:none;background:transparent;color:var(--t);font-size:13px;font-weight:500;outline:none;font-family:inherit}
.tc-date-clear{background:none;border:none;cursor:pointer;color:var(--t3);font-size:18px;padding:0 2px;line-height:1;flex-shrink:0}
.tc-date-search{display:flex;align-items:center;justify-content:center;gap:4px;padding:0 12px;background:var(--accent);color:#0f0f0d;border:none;cursor:pointer;font-size:13px;font-weight:700;font-family:inherit;white-space:nowrap;flex:0 0 auto;min-width:68px;min-height:36px}
.tc-pills{display:flex;gap:5px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.tc-pills::-webkit-scrollbar{display:none}
.tc-pill{border-radius:20px;font-size:12px;padding:5px 12px;font-weight:600;white-space:nowrap;flex-shrink:0;border:1px solid var(--border2);background:var(--bg3);color:var(--t2);cursor:pointer;font-family:'Be Vietnam Pro',sans-serif;min-height:32px}
.tc-pill:active{background:var(--bg4)}
.tc-filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tc-filter-grid .sel{width:100%;font-size:13px;font-weight:500}
.tc-q-wrap{position:relative;min-width:0}
.tc-q-icon{position:absolute;left:9px;top:50%;transform:translateY(-50%);font-size:14px;color:var(--t3);pointer-events:none;z-index:1}
.tc-q-inp{width:100%;padding-left:30px!important;font-size:13px}
@media(max-width:480px){.hide-xs{display:none!important}}
@media(max-width:767px){
  #tab-thuchi .tc-toolbar-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}
  #tab-thuchi .tc-toolbar-head .card-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
  #tab-thuchi .tc-toolbar-actions{display:flex;flex-shrink:0;gap:5px}
  #tab-thuchi .tc-toolbar-actions .btn{padding:.4rem .65rem;font-size:12px;white-space:nowrap;flex-shrink:0}
}
/* ── Xe row ── */
.mob-xe-list{display:none;flex-direction:column;gap:8px;padding-top:6px;}
.mob-xe-card{background:var(--bg2);border:1px solid var(--border);border-radius:13px;padding:13px 14px;display:flex;align-items:center;gap:12px;}
.mob-xe-icon{width:44px;height:44px;border-radius:12px;background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.mob-xe-info{flex:1;min-width:0;}
.mob-xe-name{font-size:14px;font-weight:700;}
.mob-xe-sub{font-size:11px;color:var(--t2);margin-top:2px;}
.mob-xe-right{text-align:right;flex-shrink:0;}
.mob-xe-price{font-size:13px;font-weight:700;color:var(--accent);}
/* ── Khách row ── */
.mob-kh-list{display:none;flex-direction:column;gap:8px;padding-top:6px;}
.mob-taichi-list{display:none;flex-direction:column;gap:8px;padding-top:6px;}
.mob-bc-list{display:none;flex-direction:column;gap:8px;padding-top:6px;}
.mob-kh-card{background:var(--bg2);border:1px solid var(--border);border-radius:13px;padding:13px 14px;display:flex;flex-direction:column;align-items:stretch;gap:0;}
.mob-kh-avatar{width:42px;height:42px;border-radius:50%;background:var(--bg4);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800;color:var(--accent);flex-shrink:0;text-transform:uppercase;font-family:monospace;}
.mob-kh-info{flex:1;min-width:0;}
.mob-kh-name{font-size:14px;font-weight:700;}
.mob-kh-sub{font-size:11px;color:var(--t2);margin-top:2px;}
.mob-kh-card-hd{display:flex;align-items:center;gap:12px;width:100%;}
.mob-kh-acts{display:flex;flex-direction:column;gap:5px;align-items:flex-end;flex-shrink:0;}
.mob-kh-details{margin-top:10px;padding-top:10px;border-top:1px solid var(--border);display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;font-size:12px;width:100%;}
.mob-kh-lbl{display:block;color:var(--t3);font-size:10px;margin-bottom:2px;}
.mob-kh-val{display:block;color:var(--t2);word-break:break-word;}
.mob-trash-list,.mob-trash-log-list{display:none;flex-direction:column;gap:8px;padding-top:6px;}
.mob-trash-card,.mob-trash-log-card{background:var(--bg2);border:1px solid var(--border);border-radius:13px;padding:13px 14px;}
.mob-trash-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px;}
.mob-trash-name{font-size:14px;font-weight:700;flex:1;min-width:0;}
.mob-trash-meta{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;font-size:12px;margin-bottom:10px;}
.mob-trash-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.mob-trash-log-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;}
.mob-trash-log-time{font-size:11px;color:var(--t3);}
.mob-trash-log-name{font-size:14px;font-weight:600;margin-bottom:4px;}
.mob-trash-log-by{font-size:12px;color:var(--t2);}
.mob-trash-info{display:none;font-size:12px;color:var(--t2);margin:0 0 10px;line-height:1.45;}
.mob-conno-list{display:none;flex-direction:column;gap:8px;padding-top:6px;}
.mob-conno-card{background:var(--bg2);border:1px solid var(--border);border-radius:13px;padding:13px 14px;}
.mob-conno-hd{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;}
.mob-conno-id{font-size:11px;color:var(--t3);}
.mob-conno-name{font-size:15px;font-weight:700;margin-bottom:4px;}
.mob-conno-sub{font-size:12px;color:var(--t2);margin-bottom:6px;}
.mob-conno-due{font-size:12px;color:var(--t2);margin-bottom:10px;}
.mob-conno-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin-bottom:10px;}
.mob-conno-acts{display:flex;gap:8px;flex-wrap:wrap;}
/* ── Search bar ── */
.mob-search{display:flex;align-items:center;gap:9px;background:var(--bg3);border:1px solid var(--border2);border-radius:12px;padding:0 13px;min-height:46px;margin-bottom:8px;}
.mob-search i{color:var(--t3);font-size:16px;}
.mob-search input{flex:1;border:none;background:transparent;color:var(--t);font-family:'Be Vietnam Pro',sans-serif;font-size:14px;outline:none;}
.mob-search input::placeholder{color:var(--t3);}
/* ── Chips ── */
.mob-chips{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;margin-bottom:4px;-webkit-overflow-scrolling:touch;}
.mob-chips::-webkit-scrollbar{display:none;}
/* ── Đơn thuê tab ── */
#tab-don .card-head.don-toolbar{flex-direction:column;align-items:stretch;gap:10px}
.don-toolbar-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
.don-filter-grid{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
.don-filter-grid .sel{min-width:140px;font-size:13px;font-weight:500}
.don-stats-bar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:14px;padding:0 16px}
.don-stat-item{background:var(--bg3);border-radius:var(--r);padding:10px 16px;flex:1;min-width:140px;border:1px solid var(--border)}
.don-stat-label{font-size:11px;color:var(--t3);display:block}
.don-stat-val{font-size:17px;font-weight:700;color:var(--t)}
.don-stat-val.don-stat-amber{color:var(--amber)}
.don-stat-val.don-stat-green{color:var(--green)}
#tab-don table.don-table{table-layout:fixed;width:100%}
#tab-don table.don-table .col-id{width:68px}
#tab-don table.don-table .col-guest{width:128px}
#tab-don table.don-table .col-xe{width:116px}
#tab-don table.don-table .col-dates{width:158px;min-width:158px}
#tab-don table.don-table .col-money{width:98px;min-width:98px}
#tab-don table.don-table .col-status{width:92px}
#tab-don table.don-table .col-acts{width:72px}
#tab-don table.don-table th,#tab-don table.don-table td{padding:7px 8px;font-size:12px;line-height:1.35}
#tab-don table.don-table th{font-size:10px;padding:6px 8px;letter-spacing:.35px}
#tab-don table.don-table th:nth-child(5),
#tab-don table.don-table th:nth-child(6),
#tab-don table.don-table th:nth-child(7),
#tab-don table.don-table th:nth-child(8){text-align:right}
#don-table td,#don-table th{white-space:nowrap}
#don-table td.don-dates{white-space:normal;overflow:hidden;max-width:158px}
#don-table td.don-money{overflow:hidden}
#don-table .don-id{display:block;max-width:64px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9.5px;line-height:1.25;color:var(--t3);background:var(--bg3);padding:1px 4px;border-radius:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#don-table .don-id-cell{width:68px;max-width:68px;padding-right:4px!important}
#don-table .don-guest{max-width:128px}
#don-table .don-guest-name{display:block;font-weight:500;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#don-table .don-guest-phone{display:block;font-size:10px;color:var(--t3);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#don-table .don-xe{font-size:11.5px;color:var(--t2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:116px}
#don-table .don-dates{font-size:11px;color:var(--t2);line-height:1.3;vertical-align:middle}
#don-table .don-date-line{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.35}
#don-table .don-date-line+.don-date-line{margin-top:1px}
#don-table .don-days-badge{font-size:9.5px;padding:1px 6px;margin-left:4px;vertical-align:baseline}
#don-table .don-money{text-align:right;font-variant-numeric:tabular-nums;font-size:11.5px;letter-spacing:-.02em}
#don-table .don-money-total{font-weight:600;color:var(--accent)}
#don-table .don-money-disc{color:var(--red)}
#don-table .don-money-dep{color:var(--amber)}
#don-table .don-money-remain.is-due{font-weight:700;color:var(--red)}
#don-table .don-money-remain.is-paid{font-weight:600;color:var(--green)}
#don-table .don-status .badge{font-size:10px;padding:2px 7px}
#don-table .acts{justify-content:flex-end}
#mob-don-cards{display:none;padding:0 16px 16px}
.mob-don-card{background:var(--bg2);border:1px solid var(--border);border-radius:calc(var(--r) * 1.5);padding:14px;margin-bottom:10px;cursor:pointer}
.mob-don-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}
.mob-don-card-name{font-weight:600;font-size:15px}
.mob-don-card-phone{font-size:12px;color:var(--t3);margin-top:2px}
.mob-don-card-id code{font-size:11px;color:var(--t3)}
.mob-don-card-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding:5px 0;border-top:1px solid var(--border)}
.mob-don-card-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}
.mob-don-card-actions button{flex:1;padding:8px;border-radius:var(--r);border:1px solid var(--border);background:var(--bg3);color:var(--t);font-size:13px;cursor:pointer}
@media(max-width:768px){
  #tab-don .tw{display:none}
  #mob-don-cards{display:block}
  #don-stats{display:flex;flex-wrap:wrap;padding:0}
  #don-stats .don-stat-item{flex:1 1 calc(50% - 6px);min-width:0}
}
@media(min-width:769px){
  #mob-don-cards{display:none}
}
.mob-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:100px;flex-shrink:0;background:var(--bg3);border:1px solid var(--border2);color:var(--t2);font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer;min-height:34px;-webkit-tap-highlight-color:transparent;transition:.12s;}
.mob-chip.active{background:rgba(232,200,122,.1);border-color:var(--accent);color:var(--accent);}
/* ── Amount input ── */
.mob-amt-wrap{position:relative;margin-bottom:6px;}
.mob-amt-wrap input{width:100%;min-height:54px;background:var(--bg3);border:1px solid var(--border2);border-radius:10px;color:var(--accent);font-family:monospace;font-size:22px;font-weight:800;padding:10px 58px 10px 14px;outline:none;transition:border-color .15s;}
.mob-amt-wrap input:focus{border-color:var(--accent);}
.mob-amt-unit{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--t3);font-weight:600;pointer-events:none;}
.mob-quick{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px;}
.mob-qbtn{min-height:36px;padding:5px 12px;background:var(--bg4);border:1px solid var(--border2);border-radius:8px;color:var(--t2);font-family:'Be Vietnam Pro',sans-serif;font-size:12px;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:.12s;}
.mob-qbtn:active{background:rgba(232,200,122,.1);border-color:var(--accent);color:var(--accent);transform:scale(.93);}
.mob-qbtn.clr{color:var(--red);border-color:rgba(248,113,113,.25);}
/* ── HTTT pills ── */
.mob-httt{display:flex;gap:8px;margin-bottom:10px;}
.mob-hpill{flex:1;min-height:52px;background:var(--bg3);border:2px solid var(--border2);border-radius:13px;color:var(--t2);font-family:'Be Vietnam Pro',sans-serif;font-size:11px;font-weight:700;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;-webkit-tap-highlight-color:transparent;transition:.13s;}
.mob-hpill i{font-size:20px;}
.mob-hpill.active.tm{border-color:var(--green);background:var(--green-bg);color:var(--green);}
.mob-hpill.active.ck{border-color:var(--blue);background:var(--blue-bg);color:var(--blue);}
.mob-hpill.active.both{border-color:var(--amber);background:var(--amber-bg);color:var(--amber);}
/* ── Loại pills ── */
.mob-loai{display:flex;gap:8px;margin-bottom:14px;}
.mob-lpill{flex:1;min-height:52px;background:var(--bg3);border:2px solid var(--border2);border-radius:13px;color:var(--t2);font-family:'Be Vietnam Pro',sans-serif;font-size:13px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;-webkit-tap-highlight-color:transparent;transition:.13s;}
.mob-lpill i{font-size:21px;}
.mob-lpill.active.thu{border-color:var(--green);background:var(--green-bg);color:var(--green);}
.mob-lpill.active.chi{border-color:var(--red);background:var(--red-bg);color:var(--red);}
/* ── Cat grid ── */
.mob-cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px;}
.mob-cat{padding:11px 6px;border-radius:11px;background:var(--bg3);border:2px solid var(--border);text-align:center;cursor:pointer;font-size:11px;font-weight:600;color:var(--t2);-webkit-tap-highlight-color:transparent;transition:.12s;}
.mob-cat:active{transform:scale(.93);}
.mob-cat.active{border-color:var(--accent);background:rgba(232,200,122,.1);color:var(--accent);}
.mob-cat-ico{font-size:20px;margin-bottom:4px;display:block;}
/* ── Camera ── */
.mob-img-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px;}
.mob-img-slot{aspect-ratio:1;border-radius:12px;background:var(--bg3);border:2px dashed var(--border2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;position:relative;overflow:hidden;min-height:86px;-webkit-tap-highlight-color:transparent;}
.mob-img-slot i{font-size:22px;color:var(--t3);}
.mob-img-slot span{font-size:10px;color:var(--t3);font-weight:600;text-align:center;}
.mob-img-slot.cam{border-color:rgba(232,200,122,.3);}
.mob-img-slot.cam i{color:var(--accent);}
.mob-img-slot.filled{border:2px solid var(--green);}
.mob-img-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.mob-img-slot input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;font-size:0;}
.mob-img-rm{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.7);color:#fff;border:none;font-size:11px;cursor:pointer;z-index:2;display:flex;align-items:center;justify-content:center;}
/* ── Sec label ── */
.mob-sec{font-size:11px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:1px;margin:14px 0 8px;display:flex;align-items:center;gap:6px;}
.mob-sec::after{content:'';flex:1;height:1px;background:var(--border);}
/* ── Sheet buttons ── */
.mob-btn-primary{flex:2;min-height:50px;border-radius:13px;background:var(--accent);color:#0f0f0d;border:none;font-family:'Be Vietnam Pro',sans-serif;font-size:15px;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;-webkit-tap-highlight-color:transparent;transition:.12s;}
.mob-btn-primary:active{transform:scale(.97);opacity:.9;}
.mob-btn-secondary{flex:1;min-height:50px;border-radius:13px;background:var(--bg4);color:var(--t2);border:1px solid var(--border2);font-family:'Be Vietnam Pro',sans-serif;font-size:14px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;}
/* ── More grid ── */
.mob-more-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:4px 0 8px;}
.mob-more-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:16px 8px;border-radius:14px;background:var(--bg3);border:1px solid var(--border);color:var(--t2);font-family:'Be Vietnam Pro',sans-serif;font-size:12px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:.13s;}
.mob-more-tile i{font-size:24px;}
.mob-more-tile:active{background:var(--bg4);transform:scale(.95);}

/* ── Mobile Quick Contract / Receipt ── */
.mapp-bottom-nav,.mapp-fab,.mapp-account,.mapp-account-menu,.mquick-overlay,.mquick-sheet,.mquick-card-list{display:none}
.mquick-empty,.mquick-empty-list{color:var(--t3);font-size:13px;text-align:center;padding:18px 12px}
.mquick-overlay{position:fixed;inset:0;background:rgba(0,0,0,.66);z-index:9700;opacity:0;pointer-events:none;transition:opacity .2s}
.mquick-overlay.open{display:block;opacity:1;pointer-events:auto}
.mquick-sheet{position:fixed;left:0;right:0;bottom:0;z-index:9701;background:var(--bg2);border-top:1px solid var(--border2);border-radius:22px 22px 0 0;box-shadow:0 -18px 70px rgba(0,0,0,.65);transform:translateY(100%);transition:transform .24s ease;max-height:92dvh;overflow:hidden;flex-direction:column}
.mquick-sheet.open{display:flex;transform:translateY(0)}
.mquick-handle{width:42px;height:4px;border-radius:999px;background:var(--border2);margin:9px auto 7px}
.mquick-head{display:flex;align-items:center;gap:10px;padding:0 16px 12px;border-bottom:1px solid var(--border)}
.mquick-title{flex:1;min-width:0}
.mquick-title b{display:block;font-size:16px}
.mquick-title span{display:block;font-size:11px;color:var(--t3);margin-top:2px}
.mquick-body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 16px calc(18px + env(safe-area-inset-bottom,0px))}
.mquick-section{margin-bottom:14px}
.mquick-section-title{display:flex;align-items:center;gap:7px;color:var(--t3);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.7px;margin:12px 0 8px}
.mquick-section-title:after{content:'';height:1px;background:var(--border);flex:1}
.mquick-select,.mquick-input,.mquick-textarea{width:100%;min-height:46px;border:1px solid var(--border2);border-radius:12px;background:var(--bg3);color:var(--t);font-family:'Be Vietnam Pro',sans-serif;font-size:14px;padding:10px 12px;outline:none}
.mquick-textarea{min-height:72px;resize:vertical}
.mquick-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.mquick-seg,.mquick-pay,.mquick-quick{display:flex;gap:8px;flex-wrap:wrap}
.mquick-seg button,.mquick-pay button,.mquick-quick button{min-height:44px;border-radius:12px;border:1px solid var(--border2);background:var(--bg3);color:var(--t2);font-family:'Be Vietnam Pro',sans-serif;font-weight:700;cursor:pointer}
.mquick-seg button{flex:1}
.mquick-pay button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:12px}
.mquick-pay i{font-size:20px}
.mquick-seg button.active[data-mquick-type="Thu"],.mquick-pay button.active[data-mquick-pay="Tiền mặt"]{border-color:var(--green);background:var(--green-bg);color:var(--green)}
.mquick-seg button.active[data-mquick-type="Chi"]{border-color:var(--red);background:var(--red-bg);color:var(--red)}
.mquick-pay button.active[data-mquick-pay="Chuyển khoản"]{border-color:var(--blue);background:var(--blue-bg);color:var(--blue)}
.mquick-pay button.active[data-mquick-pay="Tiền mặt + CK"]{border-color:var(--amber);background:var(--amber-bg);color:var(--amber)}
.mquick-amount-wrap{position:relative}
.mquick-amount-wrap input{font-size:24px;font-weight:800;font-family:monospace;color:var(--accent);padding-right:58px}
.mquick-amount-wrap span{position:absolute;right:13px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--t3);font-weight:700}
.mquick-quick button{padding:0 13px;font-size:13px}
.mquick-upload-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.mquick-upload{min-height:94px;aspect-ratio:1;border:2px dashed var(--border2);border-radius:14px;background:var(--bg3);position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--t3);font-size:11px;font-weight:700;text-align:center;cursor:pointer}
.mquick-upload i{font-size:24px;color:var(--accent)}
.mquick-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}
.mquick-upload img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mquick-upload.filled{border-color:var(--green)}
.mquick-save{position:sticky;bottom:0;display:flex;gap:10px;padding-top:10px;background:linear-gradient(180deg,transparent,var(--bg2) 22%)}
.mquick-save button{min-height:50px;border-radius:14px;border:1px solid var(--border2);font-family:'Be Vietnam Pro',sans-serif;font-size:14px;font-weight:800;cursor:pointer}
.mquick-save .secondary{flex:1;background:var(--bg4);color:var(--t2)}
.mquick-save .primary{flex:2;background:var(--accent);border-color:var(--accent);color:#0f0f0d}
.mquick-contract-card{border:1px solid var(--border);border-radius:14px;background:var(--bg3);overflow:hidden}
.mquick-contract-head{display:flex;justify-content:space-between;gap:10px;padding:13px 14px;border-bottom:1px solid var(--border)}
.mquick-contract-head b{display:block;font-size:14px}.mquick-contract-head span{display:block;font-size:11px;color:var(--t3);margin-top:2px}
.mquick-contract-grid{display:grid;grid-template-columns:1fr 1fr}
.mquick-contract-grid div{padding:10px 13px;border-bottom:1px solid var(--border);border-right:1px solid var(--border)}
.mquick-contract-grid div:nth-child(even){border-right:none}
.mquick-contract-grid span{display:block;font-size:10px;color:var(--t3);text-transform:uppercase;font-weight:800}
.mquick-contract-grid b{display:block;font-size:12px;margin-top:3px}.mquick-contract-grid .red{color:var(--red)}.mquick-contract-grid .green{color:var(--green)}
.mquick-actions{display:flex;gap:8px;padding:10px 12px}
.mquick-actions button{flex:1;min-height:44px;border-radius:11px;border:1px solid var(--border2);background:var(--bg4);color:var(--t);font-family:'Be Vietnam Pro',sans-serif;font-weight:700}
.mquick-actions button.primary{background:rgba(232,200,122,.13);border-color:var(--accent);color:var(--accent)}
.mquick-row-card{display:flex;align-items:center;gap:12px;background:var(--bg2);border:1px solid var(--border);border-radius:14px;padding:12px 13px}
.mquick-row-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.mquick-row-icon.thu{background:var(--green-bg);color:var(--green)}.mquick-row-icon.chi{background:var(--red-bg);color:var(--red)}
.mquick-row-main{flex:1;min-width:0}.mquick-row-title{font-size:13px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mquick-row-sub{font-size:11px;color:var(--t3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mquick-row-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}.mquick-row-meta span{font-size:10px;color:var(--t3);background:var(--bg3);border-radius:999px;padding:2px 7px}
.mquick-row-amount{font-size:14px;font-weight:900;font-family:monospace}.mquick-row-amount.thu{color:var(--green)}.mquick-row-amount.chi{color:var(--red)}
.mquick-row-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}
.mquick-mini-approve{min-height:38px;border-radius:11px;border:1px solid var(--green);background:var(--green-bg);color:var(--green);font-family:'Be Vietnam Pro',sans-serif;font-size:12px;font-weight:800;padding:0 10px}
.mquick-don-list{display:none;flex-direction:column;gap:10px}
.mquick-don-card{display:grid;grid-template-columns:92px 1fr;gap:12px;background:var(--bg2);border:1px solid var(--border);border-radius:15px;padding:10px;overflow:hidden}
.mquick-don-photo{width:92px;aspect-ratio:4/3;border-radius:12px;background:var(--bg3);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;align-self:start}
.mquick-don-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mquick-don-photo i{font-size:28px;color:var(--t3)}
.mquick-don-photo:not(.empty) i{display:none}
.mquick-don-body{min-width:0}
.mquick-don-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.mquick-don-head b{display:block;font-size:14px;line-height:1.25}
.mquick-don-head span{display:block;font-size:11px;color:var(--t3);margin-top:2px}
.mquick-don-vehicle{margin-top:7px;font-size:12px;color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mquick-don-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}
.mquick-don-grid div{background:var(--bg3);border:1px solid var(--border);border-radius:10px;padding:7px 8px}
.mquick-don-grid span{display:block;font-size:10px;color:var(--t3);font-weight:800;text-transform:uppercase}
.mquick-don-grid b{display:block;font-size:12px;margin-top:2px}.mquick-don-grid .red{color:var(--red)}.mquick-don-grid .green{color:var(--green)}
.mquick-don-actions{display:flex;gap:7px;margin-top:9px}
.mquick-don-actions button{flex:1;min-height:42px;border-radius:11px;border:1px solid var(--border2);background:var(--bg3);color:var(--t);font-family:'Be Vietnam Pro',sans-serif;font-size:12px;font-weight:800}
.mquick-don-actions button.primary{background:rgba(232,200,122,.13);border-color:var(--accent);color:var(--accent)}
.mquick-xe-list{display:none;flex-direction:column;gap:10px}
.mquick-xe-card{display:grid;grid-template-columns:96px 1fr auto;gap:12px;align-items:center;background:var(--bg2);border:1px solid var(--border);border-radius:15px;padding:10px;overflow:hidden}
.mquick-xe-photo{width:96px;aspect-ratio:4/3;border-radius:12px;background:var(--bg3);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.mquick-xe-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mquick-xe-photo i{font-size:28px;color:var(--t3)}
.mquick-xe-photo:not(.empty) i{display:none}
.mquick-xe-info{min-width:0}
.mquick-xe-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.mquick-xe-top b{font-size:14px;line-height:1.25;min-width:0}
.mquick-xe-plate{display:inline-flex;align-items:center;gap:5px;margin-top:7px;padding:4px 8px;border-radius:9px;background:var(--bg3);border:1px solid var(--border);font-family:monospace;font-size:13px;font-weight:800;color:var(--accent)}
.mquick-xe-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.mquick-xe-meta span{font-size:11px;color:var(--t2);background:var(--bg3);border-radius:999px;padding:3px 8px}
.mquick-xe-actions button{width:44px;height:44px;border-radius:12px;border:1px solid var(--border2);background:var(--bg3);color:var(--t)}
.mquick-approve-bar{display:none;position:fixed;left:10px;right:10px;bottom:calc(72px + env(safe-area-inset-bottom,0px));z-index:9800;background:var(--bg2);border:1px solid var(--green);border-radius:18px;box-shadow:0 16px 50px rgba(0,0,0,.5);padding:11px;gap:10px;align-items:center}
.mquick-approve-bar.show{display:flex}
.mquick-approve-info{flex:1;min-width:0}
.mquick-approve-info b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mquick-approve-info span{display:block;font-size:11px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.mquick-approve-btn{min-height:52px;border-radius:14px;border:none;background:var(--green);color:#0f0f0d;font-family:'Be Vietnam Pro',sans-serif;font-size:15px;font-weight:900;padding:0 18px;display:inline-flex;align-items:center;gap:7px}
.mquick-approve-close{width:44px;height:44px;border-radius:12px;border:1px solid var(--border2);background:var(--bg3);color:var(--t2)}

@media(max-width:767px){
  button,.btn,.ib,input,select,textarea{min-height:44px}
  .mapp-account,.mapp-bottom-nav,.mapp-fab{display:none!important}
  .mapp-account-menu{position:fixed;top:calc(56px + env(safe-area-inset-top,0px));right:12px;left:12px;width:auto;max-width:360px;margin-left:auto;z-index:9611;background:var(--bg2);border:1px solid var(--border2);border-radius:14px;box-shadow:0 18px 55px rgba(0,0,0,.55);overflow:hidden;padding:6px 0}
  .mapp-account-menu.open{display:block}
  .mapp-menu-head{display:flex;gap:10px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--border)}
  .mapp-menu-avatar{width:38px;height:38px;border-radius:50%;background:var(--accent);color:#0f0f0d;display:flex;align-items:center;justify-content:center;font-weight:900}
  .mapp-menu-name{font-size:14px;font-weight:800}.mapp-menu-role{font-size:11px;color:var(--t3);margin-top:2px}
  .mapp-menu-item{width:100%;min-height:46px;border:none;background:transparent;color:var(--t);display:flex;align-items:center;gap:12px;padding:0 16px;font-family:'Be Vietnam Pro',sans-serif;font-size:14px;text-align:left}
  .mapp-menu-item i{width:20px;text-align:center;color:var(--t2);font-size:20px}.mapp-menu-item:active{background:var(--bg3)}
  .mapp-menu-item.danger{color:var(--red)}.mapp-menu-item.danger i{color:var(--red)}
  .mapp-menu-sep{height:1px;background:var(--border);margin:5px 0}
  #tab-thuchi .tw table{display:none}
  #tab-xe .tw table{display:none}
  #tab-don .tw{display:none}
  #tab-thuchi .tw{overflow:visible}
  #tab-xe .tw{overflow:visible}
  #tab-don .tw{overflow:visible}
  #tab-thuchi #mquick-tc-cards{display:none!important}
  #mquick-xe-cards{display:flex}
  #mquick-don-cards{display:flex}
  #tab-thuchi .tc-toolbar-actions .btn.ac{display:none!important}
  #tab-thuchi .tc-date-bar{width:100%;max-width:100%}
  #tab-thuchi .tc-date-fields{padding:6px 4px!important;gap:2px!important;flex:1 1 auto;min-width:0}
  #tab-thuchi .tc-date-fields input[type="date"]{flex:1 1 0;width:0;min-width:0;max-width:none;min-height:40px;font-size:12px!important}
  #tab-thuchi .tc-date-sep{font-size:11px;padding:0 1px}
  #tab-thuchi .tc-date-clear{padding:0 4px;font-size:16px}
  #tab-thuchi .tc-date-search{min-height:40px!important;min-width:76px!important;padding:0 10px!important;font-size:12px!important;flex:0 0 76px}
  #tab-thuchi .tc-date-lbl,#tab-thuchi .tc-date-ico{display:none}
  #tab-thuchi .tc-pill{min-height:40px;font-size:13px!important;padding:8px 14px}
  #tab-thuchi .tc-filter-grid .sel,#tab-thuchi .tc-q-inp{min-height:44px;font-size:16px!important}
  #tab-thuchi .card{background:transparent;border:none;padding:0}
  #tab-xe .card{background:transparent;border:none;padding:0}
  #tab-don .card{background:transparent;border:none;padding:0}
  #tab-xe .card-head{align-items:stretch}
  #tab-don .card-head{align-items:stretch}
  #tab-don .don-toolbar-head .card-title{display:none}
  #tab-don .don-toolbar-head{justify-content:flex-end}
  #tab-don .don-toolbar-head .btn.ac{display:none}
  #tab-don .tc-date-bar{width:100%;max-width:100%}
  #tab-don .tc-date-fields{padding:6px 4px!important;gap:2px!important;flex:1 1 auto;min-width:0}
  #tab-don .tc-date-fields input[type="date"]{flex:1 1 0;width:0;min-width:0;max-width:none;min-height:40px;font-size:12px!important}
  #tab-don .tc-date-sep{font-size:11px;padding:0 1px}
  #tab-don .tc-date-clear{padding:0 4px;font-size:16px}
  #tab-don .tc-date-search{min-height:40px!important;min-width:72px!important;padding:0 10px!important;font-size:12px!important;flex:0 0 72px}
  #tab-don .tc-date-lbl,#tab-don .tc-date-ico{display:none}
  #tab-don .tc-pill{min-height:36px;font-size:12px!important;padding:6px 12px}
  #tab-don .don-filter-grid{grid-template-columns:1fr 1fr;gap:6px}
  #tab-don .don-filter-grid .sel{min-width:0;width:100%}
  #tab-don .don-filter-grid .tc-q-inp{min-height:44px;font-size:16px!important}
  #tab-don #don-stats{margin-bottom:10px;padding:0}
  #tab-don #don-stats .don-stat-item{padding:8px 10px}
  #tab-don #don-stats .don-stat-val{font-size:14px}
  #tab-don #mob-don-cards{padding:0}
  #tab-don>.mob-search{display:none!important}
  #tab-xe .toolbar{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
  #tab-xe .toolbar .si{grid-column:1/-1}
  #tab-xe .toolbar .btn.ac{display:none}
  #tab-xe #xe-table{display:none!important}
  #tab-khach .tw table{display:none}
  #tab-khach .tw{overflow:visible}
  #tab-khach .card{background:transparent;border:none;padding:0}
  #tab-khach .card-head{align-items:stretch}
  #tab-khach .toolbar{display:grid;grid-template-columns:1fr;gap:8px;width:100%}
  #tab-khach .toolbar .si{grid-column:1/-1;font-size:16px!important}
  #tab-khach .toolbar .btn.ac{display:none}
  #tab-thungrac .tw table{display:none}
  #tab-thungrac .tw{overflow:visible}
  #tab-thungrac .card:not(:first-child){background:transparent;border:none;padding:0}
  #tab-thungrac .mob-trash-info{display:block}
  #tab-thungrac #trash-retention-wrap{flex-direction:column;align-items:stretch!important;gap:10px!important}
  #tab-thungrac #trash-retention-wrap .si{width:100%!important;max-width:none}
  #tab-conno .tw table{display:none}
  #tab-conno .tw{overflow:visible}
  #tab-conno .card{background:transparent;border:none;padding:0}
  #tab-conno .card-head{align-items:stretch}
  #tab-conno .toolbar{width:100%}
  #tab-conno .toolbar .msel-wrap{width:100%;min-width:0}
  #tab-conno .toolbar .msel-btn{min-height:44px;font-size:14px;padding:10px 36px 10px 12px}
  #tab-conno .stats-grid{grid-template-columns:1fr!important;gap:8px!important;margin-bottom:12px}
  #tab-baocao .tw table{display:none}
  #tab-baocao .tw{overflow:visible}
  #tab-baocao .card:last-child{background:transparent;border:none;padding:0}
  #tab-baocao .stats-grid{grid-template-columns:1fr 1fr!important;gap:8px!important;margin-bottom:12px}
  #tab-baocao .stat-val{font-size:15px!important}
  .prep-popup{width:min(300px,calc(100vw - 32px))}
  .prep-field .sel,.prep-field .si,.prep-field textarea{min-height:44px;font-size:16px!important}
  .prep-popup-save{width:100%;min-height:44px;margin-top:8px}
  #tab-xe .toolbar .msel-wrap{width:100%;min-width:0}
  #tab-xe .toolbar .msel-btn{min-height:44px;font-size:14px;padding:10px 36px 10px 12px}
  #tab-don .don-filter-grid .msel-wrap{width:100%;min-width:0}
  #tab-don .don-filter-grid .msel-btn{min-height:44px;font-size:14px}
  #tab-thuchi .stats-grid{grid-template-columns:1fr!important}
  .ph h1{font-size:20px}.ph p{font-size:12px}
}

/* ══ MOBILE UX OVERHAUL v20 ══ */
@media(max-width:767px){
  html,body{overflow-x:hidden;max-width:100vw;font-size:14px;touch-action:manipulation;-webkit-text-size-adjust:100%}
  body.mob-modal-open,body.mob-drawer-open,body.mob-qv-open{overflow:hidden}
  .main,.card,.tw,.lich-wrap,.lt-scroll,.mob-sheet-body,.modal{-webkit-overflow-scrolling:touch}
  .form-group label{font-size:12px}
  .form-group input,.form-group select,.form-group textarea,.si,.sel{font-size:16px!important;min-height:44px}
  .btn,.ib,.nav-item,.mob-nav-btn,.lt-cell,.mob-card-act,.mob-more-tile{min-height:44px;min-width:44px;touch-action:manipulation}
  .btn:active,.ib:active,.mob-nav-btn:active,.mob-fab:active,.mob-hamburger:active,.mob-top-avatar:active,.lt-date-chip:active{transform:scale(.97)}
  .tab-page.active{animation:mobTabIn .15s ease}
  @keyframes mobTabIn{from{opacity:.55}to{opacity:1}}
  /* Top header */
  .mob-top-header{display:flex;align-items:center;gap:10px;position:fixed;top:0;left:0;right:0;height:calc(52px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 12px 0;background:rgba(15,15,13,.96);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);z-index:8900}
  .mob-hamburger,.mob-top-avatar{width:44px;height:44px;border:0;border-radius:12px;background:var(--bg3);color:var(--t);display:flex;align-items:center;justify-content:center;font-size:22px;cursor:pointer;flex-shrink:0;padding:0}
  .mob-top-avatar span{width:34px;height:34px;border-radius:50%;background:var(--accent);color:#0f0f0d;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px}
  .mob-top-title{flex:1;text-align:center;font-size:16px;font-weight:800;color:var(--t);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  /* Sidebar drawer */
  .mob-drawer-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9040;opacity:0;pointer-events:none;transition:opacity .25s}
  .mob-drawer-backdrop.open{opacity:1!important;pointer-events:all!important;display:block!important;z-index:9040!important}
  #app .sidebar{display:flex!important;flex-direction:column!important;position:fixed;top:0;left:0;bottom:0;height:100dvh;width:82vw;max-width:320px;z-index:8850;transform:translateX(-100%);transition:transform .28s cubic-bezier(.32,0,.15,1);border-right:1px solid var(--border);box-shadow:12px 0 40px rgba(0,0,0,.45);padding-top:env(safe-area-inset-top,0px);overflow:hidden!important;box-sizing:border-box;touch-action:pan-y}
  #app .sidebar.open{transform:translateX(0);z-index:9100!important}
  body.mob-drawer-open .mob-top-header{z-index:8800}
  #app .sidebar .s-logo{flex-shrink:0;padding:12px 1rem 8px!important;text-align:center}
  #app .sidebar .s-logo img{display:block;margin:0 auto 4px}
  #app .sidebar .s-nav{flex:1 1 auto;min-height:0;overflow-y:auto!important;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;touch-action:pan-y}
  .main{margin-top:calc(52px + env(safe-area-inset-top,0px))!important;padding:12px!important}
  .ph{padding:12px 0!important;margin-bottom:8px}
  .card-head{flex-direction:column;align-items:stretch;gap:8px}
  .card-head .btn{width:100%;justify-content:center}
  .toolbar{flex-wrap:wrap;gap:8px}
  .toolbar .btn.icon-only span{display:none}
  /* Bottom nav accent */
  .mob-nav-btn{position:relative;border-top:3px solid transparent;padding-top:3px}
  .mob-nav-btn.active{border-top-color:var(--accent);color:var(--accent)}
  .mob-nav-btn.active i{color:var(--accent)}
  /* Pull hint */
  .mob-ptr-hint{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;color:var(--t3);padding:6px 0 10px;opacity:.75}
  .mob-ptr-hint i{font-size:14px}
  /* Dashboard mobile */
  .dash-row-mob{display:grid!important;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 0}
  .dash-mob-date{font-size:13px;font-weight:600;color:var(--t)}
  .dash-mob-amt{font-size:14px;font-weight:800;color:var(--accent);text-align:right}
  .bc-main-grid{grid-template-columns:1fr!important;}
  #bc-chart-wrap{overflow-x:auto!important;overflow-y:visible!important;-webkit-overflow-scrolling:touch;min-height:210px}
  #bc-chart{display:block;width:100%!important;height:200px!important;max-height:none!important}
  #tab-baocao .card-head .msel-wrap{width:100%}
  #tab-baocao .card-head .msel-btn{min-height:44px;font-size:16px;padding:10px 36px 10px 12px}
  #tab-baocao .card-head .sel:not(.msel-native){width:100%}
  #tab-taichi .toolbar{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;width:100%}
  #tab-taichi .toolbar .msel-wrap,#tab-taichi .toolbar .sel:not(.msel-native){width:100%;min-width:0}
  #tab-taichi .toolbar .msel-btn{min-height:44px;font-size:16px;padding:10px 36px 10px 12px}
  #tab-taichi .toolbar #tc-search{grid-column:1/-1;max-width:none!important;width:100%}
  .bc-html-cols{min-width:max(100%,480px)}
  .bc-html-xlbl{font-size:9px!important}
  /* Calendar mobile */
  .lt-date-chips{display:flex;gap:8px;overflow-x:auto;padding:10px 12px;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;border-bottom:1px solid var(--border);background:var(--bg)}
  .lt-date-chips::-webkit-scrollbar{display:none}
  .lt-date-chip{flex:0 0 auto;min-width:52px;min-height:44px;border:1px solid var(--border);border-radius:12px;background:var(--bg3);color:var(--t2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 10px;scroll-snap-align:start;cursor:pointer;font-family:'Be Vietnam Pro',sans-serif}
  .lt-date-chip b{font-size:15px;color:var(--t)}
  .lt-date-chip span{font-size:10px;text-transform:uppercase}
  .lt-date-chip.today,.lt-date-chip.active{border-color:var(--accent);background:rgba(232,200,122,.12);color:var(--accent)}
  #tab-lichthuexe .ph{display:none}
  #tab-lichthuexe .card-head{display:none!important}
  #tab-lichthuexe .card{background:transparent;border:none;padding:0}
  #tab-lichthuexe .lich-wrap{border-radius:14px;overflow:hidden}
  .lt-toolbar{
    display:grid!important;
    grid-template-columns:44px auto 1fr;
    grid-template-rows:auto auto auto;
    gap:6px 8px;
    padding:8px 10px!important;
    align-items:center;
  }
  .lt-search{grid-column:1/-1;grid-row:1;width:100%}
  .lt-search .si{width:100%!important;min-height:40px!important;height:40px;font-size:15px!important;border-radius:10px 0 0 10px}
  .lt-search-btn{width:44px!important;min-width:44px!important;height:40px!important;font-size:18px;border-radius:0 10px 10px 0}
  .lt-month-chips{grid-column:1/-1;grid-row:2;width:100%;padding-bottom:2px}
  .lt-month-chip{min-height:36px!important;height:36px!important;padding:0 12px!important;font-size:12px!important}
  .lt-toolbar>.btn.lt-filter-btn{grid-column:1;grid-row:3;width:44px!important;min-width:44px!important;height:40px!important;min-height:40px!important;padding:0}
  .lt-toolbar>.btn.lt-create{grid-column:2;grid-row:3;min-height:40px!important;height:40px!important;padding:0 12px!important;font-size:12px!important;white-space:nowrap}
  .lt-type-chips{display:none!important}
  .lt-toolbar>.lt-type-sel,.lt-toolbar>.msel-wrap:has(#lich-type-filter){grid-column:3;grid-row:3;width:100%!important;min-height:40px!important;height:40px}
  .lt-toolbar>.msel-wrap:has(#lich-type-filter) .msel-btn{min-height:40px!important;height:40px;width:100%;font-size:14px!important;border-radius:10px}
  .lt-filter-panel.open{flex-direction:column;align-items:stretch;gap:8px;padding:8px 10px}
  .lt-filter-panel .lt-filter-date{min-width:0;width:100%;height:44px}
  .lt-filter-panel button{height:44px;width:100%;font-size:15px}
  .lt-date-chips{padding:8px 10px;gap:6px}
  .lt-date-chip{min-width:46px;min-height:40px;padding:4px 8px;border-radius:10px}
  .lt-month{height:30px;padding:0 10px;font-size:11px}
  .lt-scroll{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y}
  /* Lịch mobile: giữ cột xe cố định trái — thanh đơn kéo ngang đi phía sau, không đè tên xe */
  .lt-head{grid-template-columns:128px max-content!important}
  .lt-corner{width:128px!important;min-width:128px!important;height:50px!important;padding:0 8px!important;font-size:10px!important;position:sticky!important;left:0!important;z-index:30!important;background:var(--bg3)!important;box-shadow:4px 0 14px rgba(0,0,0,.28)}
  .lt-group{grid-template-columns:128px max-content!important}
  .lt-group-name{width:128px!important;min-width:128px!important;position:sticky!important;left:0!important;z-index:28!important;background:var(--bg2)!important;box-shadow:4px 0 12px rgba(0,0,0,.22);padding:0 8px!important;font-size:10px!important}
  .lt-row{display:grid!important;grid-template-columns:128px max-content!important;grid-template-rows:unset!important;min-height:68px!important;align-items:stretch}
  .lt-car,button.lt-car{width:128px!important;min-width:128px!important;max-width:128px!important;position:sticky!important;left:0!important;z-index:32!important;background:var(--bg)!important;border-right:2px solid var(--border2)!important;box-shadow:4px 0 14px rgba(0,0,0,.28);padding:8px!important;display:flex!important;flex-direction:column!important;justify-content:flex-start!important;align-items:stretch!important;gap:2px}
  .lt-car .lt-id{font-size:9px;margin-bottom:1px;line-height:1.2}
  .lt-car .lt-car-name,.lt-car b{font-size:11px!important;display:block;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .lt-car .lt-car-plate,.lt-car em{font-size:9px!important;display:block;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .lt-car .lt-prep-wrap{margin-top:2px}
  .lt-prep-chip{font-size:9px;padding:4px 6px;max-width:100%}
  .lt-car.lt-car-prep{border-left:3px solid var(--accent)!important}
  .lt-summary-block{box-shadow:0 -4px 14px rgba(0,0,0,.18)}
  .lt-summary-row{grid-template-columns:128px max-content!important}
  .lt-summary-label{width:128px!important;min-width:128px!important;max-width:128px!important;min-height:36px!important;font-size:10px!important;padding:0 8px!important;gap:6px!important;position:sticky!important;left:0!important;z-index:29!important;background:var(--bg2)!important;border-right:2px solid var(--border2)!important;box-shadow:4px 0 12px rgba(0,0,0,.22)}
  .lt-summary-label i{font-size:12px!important}
  .lt-sum-val{min-height:36px!important;min-width:min(96px,28vw)!important;font-size:11px!important;padding:0 4px}
  .lt-grid{width:max-content;grid-template-columns:repeat(var(--lt-days),min(96px,28vw))!important;grid-auto-rows:calc(6px + var(--lt-lanes,1) * 24px);min-height:44px;position:relative}
  .lt-days,.lt-group-days,.lt-summary-days{grid-template-columns:repeat(var(--lt-days),min(96px,28vw))!important}
  .lt-day{min-width:min(96px,28vw)}
  .lt-book,.lich-block{min-height:20px!important;min-width:0!important;height:20px!important;max-height:22px;padding:0 5px;margin-top:calc(3px + var(--lane) * 22px);z-index:2!important;font-size:10px;touch-action:manipulation}
  .lt-book span,.lich-block span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
  .lt-cell{min-width:0;min-height:44px}
  body.don-popup-open{overflow:hidden;}
  .don-popup-body{grid-template-columns:1fr;}
  .don-popup-col+.don-popup-col{border-left:none;border-top:1px solid var(--border);}
  /* Modal fullscreen */
  .overlay{align-items:stretch!important;padding:0!important;background:rgba(0,0,0,.75)!important;z-index:9750!important}
  .overlay .modal{width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important;margin:0!important;padding:0!important;display:flex!important;flex-direction:column!important}
  .modal-head{position:sticky;top:0;z-index:2;background:var(--bg2);padding:14px 16px;margin:0!important;border-bottom:1px solid var(--border);flex-shrink:0}
  .modal-head .ib{min-width:44px;min-height:44px}
  #modal-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:12px 16px;-webkit-overflow-scrolling:touch;width:100%;box-sizing:border-box;}
  .modal-foot{position:sticky;bottom:0;z-index:9800;background:var(--bg2);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px) + var(--mob-nav-h,62px));margin:0!important;border-top:1px solid var(--border);flex-shrink:0}
  .don-summary-acc{border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--bg4)}
  .don-summary-acc summary{list-style:none;cursor:pointer;padding:12px 14px;font-size:13px;font-weight:800;color:var(--t2);min-height:44px;display:flex;align-items:center}
  .don-summary-acc summary::-webkit-details-marker{display:none}
  .don-summary-acc .price-box{border:0;border-radius:0;border-top:1px solid var(--border)}
  .don-pay-section .don-panel-grid{grid-template-columns:1fr!important}
  /* Thu chi toolbar */
  #tab-thuchi .card-head .toolbar{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  #tab-thuchi .card-head .toolbar .si,#tab-thuchi .card-head .toolbar .sel{grid-column:1/-1;font-size:16px!important}
  .mob-tc-list,.mob-card-list,.mob-xe-list,.mob-kh-list,.mob-taichi-list,.mob-bc-list,.mob-users-list,.mob-roles-list,.mob-trash-list,.mob-trash-log-list,.mob-conno-list{display:flex!important}
  .tw>table{display:none!important}
  #roles-table>table{display:none!important}
  #tab-taichi .tw>table{display:none!important}
  /* ── Fix dashboard & dedupe mobile chrome ── */
  .mapp-account,.mapp-bottom-nav,.mapp-fab{display:none!important}
  .mob-bottom-nav{display:flex!important;z-index:9700!important}
  .mob-fab{z-index:9699!important}
  .mob-fab.hidden{display:none!important}
  .toast{
    left:12px;
    right:12px;
    bottom:calc(var(--mob-nav-h) + var(--mob-safe-b) + 76px);
    z-index:9850!important;
    max-width:none;
    font-size:14px;
    padding:12px 14px;
    border-radius:12px;
  }
  body:has(.mob-fab.hidden) .toast{
    bottom:calc(var(--mob-nav-h) + var(--mob-safe-b) + 16px);
  }
  .tab-page>.ph,.tab-page>.page-head{display:none!important}
  #tab-dashboard .stats-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;margin:0 0 14px!important;min-height:0}
  #tab-dashboard .stat-card .stat-icon{width:36px;height:36px;font-size:18px;flex-shrink:0}
  #tab-dashboard .stat-card{padding:10px 12px!important;min-height:64px}
  #tab-dashboard .stat-val{font-size:15px!important}
  #tab-dashboard .stat-label{font-size:11px!important}
  #tab-dashboard .dash-grid{display:flex!important;flex-direction:column!important;gap:12px!important}
  #tab-dashboard .dash-grid>.card{padding:14px!important;min-height:auto}
  #tab-dashboard .card-title{margin-bottom:10px!important;font-size:14px;font-weight:700}
  #tab-dashboard #dash-recent,#tab-dashboard #dash-overdue{min-height:40px}
  #tab-dashboard #dash-soon,#tab-dashboard #dash-today-tc,#tab-dashboard #dash-fleet{min-height:40px}
  #tab-dashboard #dash-fleet>div{grid-template-columns:1fr 1fr!important;}
  .dash-row-mob{display:flex!important;align-items:center;justify-content:space-between;gap:10px;padding:10px 0!important;border-bottom:1px solid var(--border)}
  .dash-row-mob:last-child{border-bottom:0}
  .dash-mob-main{flex:1;min-width:0}
  .dash-mob-main b{display:block;font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dash-mob-main span{display:block;font-size:12px;color:var(--t3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dash-mob-right{text-align:right;flex-shrink:0}
  .dash-mob-amt{font-size:14px;font-weight:800;color:var(--accent)}
  .main{margin-top:calc(52px + env(safe-area-inset-top,0px))!important;padding:12px 12px calc(var(--mob-nav-h,62px) + env(safe-area-inset-bottom,0px) + 120px)!important}
  .sh-main-grid{grid-template-columns:1fr!important;}
  #stab-bar{scrollbar-width:none;}
  #stab-bar::-webkit-scrollbar{display:none;}
  #stab-bar .btn{min-height:36px!important;}
  .overlay .modal{z-index:9760!important;}
  .overlay .modal-foot{z-index:9780!important;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))!important;}
  .mob-sheet-body{padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))!important;}
  #modal-body{padding-bottom:8px!important;}
  .mapp-bottom-nav{display:none!important;}
  /* Sidebar mobile: nav cuộn, footer luôn thấy */
  #app .sidebar .s-footer{padding-bottom:calc(var(--mob-nav-h,60px) + env(safe-area-inset-bottom,0px) + 16px)!important;flex-shrink:0;}
  /* Form đơn thuê: đồng nhất giữa Tạo mới và Chỉnh sửa */
  .don-form-layout{width:100%!important;max-width:100%!important;overflow-x:hidden;}
  .don-panel{width:100%!important;box-sizing:border-box!important;}
  .don-panel-grid{grid-template-columns:1fr!important;width:100%!important;}
  .don-khach-pick{display:flex!important;gap:8px!important;align-items:center!important;}
  .don-khach-pick select{flex:1!important;min-width:0!important;}
  .don-khach-pick .btn{flex-shrink:0!important;white-space:nowrap!important;padding:8px 10px!important;}
  #modal-body input,.modal input,.modal select,.modal textarea{
    width:100%!important;max-width:100%!important;box-sizing:border-box!important;
  }
  .don-ck-row input{width:auto!important;flex:1!important;min-width:0!important;}
  .don-ck-row select{width:72px!important;max-width:72px!important;flex-shrink:0!important;}
  .modal.modal-don{width:100vw!important;max-width:100vw!important;}
  .modal.modal-don:has(select:focus) #modal-body,
  .modal.modal-don #modal-body:has(select:focus),
  .modal.modal-don .don-tab-panel:has(select:focus),
  .modal.modal-don .don-form-layout:has(select:focus),
  #modal-overlay.modal-select-open,
  #modal-overlay.modal-select-open .modal,
  #modal-overlay.modal-select-open #modal-body,
  .modal-select-open .don-tab-panel,
  .modal-select-open .don-form-layout{overflow:visible!important;}
}
/* ── Mobile select picker (bottom sheet) ── */
.msel-wrap{position:relative;width:100%;}
.msel-btn{
  width:100%;min-height:46px;padding:10px 36px 10px 12px;border-radius:var(--r);
  border:1px solid var(--border2);background:var(--bg3);color:var(--t);
  font-size:16px;font-family:'Be Vietnam Pro',sans-serif;text-align:left;
  cursor:pointer;outline:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b95a5' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;
}
.msel-native{position:absolute!important;opacity:0!important;width:0!important;height:0!important;pointer-events:none!important;border:0!important;padding:0!important;margin:0!important;}
.don-ck-row .msel-wrap{width:68px;min-width:68px;flex:0 0 68px;}
.don-ck-row .msel-btn{font-size:12px;padding:8px 22px 8px 6px;min-height:46px;}
.don-khach-pick .msel-wrap{flex:1;min-width:0;}
.msel-overlay{
  position:fixed;inset:0;z-index:10060;background:rgba(0,0,0,.55);
  display:flex;align-items:flex-end;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .2s;
}
.msel-overlay.open{opacity:1;pointer-events:auto;}
.msel-sheet{
  width:100%;max-height:min(70dvh,520px);background:var(--bg2);
  border-top:1px solid var(--border2);border-radius:18px 18px 0 0;
  transform:translateY(100%);transition:transform .25s cubic-bezier(.32,0,.15,1);
  display:flex;flex-direction:column;overflow:hidden;
  padding-bottom:env(safe-area-inset-bottom,0px);
}
.msel-overlay.open .msel-sheet{transform:translateY(0);}
.msel-handle{width:42px;height:4px;border-radius:999px;background:var(--border2);margin:9px auto 6px;flex-shrink:0;}
.msel-sheet-hdr{display:flex;align-items:center;gap:10px;padding:4px 16px 12px;border-bottom:1px solid var(--border);flex-shrink:0;}
.msel-sheet-hdr b{flex:1;font-size:15px;}
.msel-close{width:40px;height:40px;border-radius:10px;border:1px solid var(--border2);background:var(--bg3);color:var(--t2);font-size:22px;line-height:1;cursor:pointer;}
.msel-list{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:8px 12px 16px;}
.msel-opt{
  display:block;width:100%;text-align:left;padding:14px 12px;border:none;border-radius:10px;
  background:transparent;color:var(--t);font-size:16px;font-family:'Be Vietnam Pro',sans-serif;
  cursor:pointer;margin-bottom:2px;
}
.msel-opt:hover,.msel-opt:focus{background:var(--bg3);}
.msel-opt.active{background:rgba(232,200,122,.15);color:var(--accent);font-weight:700;}
[data-theme="light"] .msel-sheet,[data-theme="light"] .msel-list{background:var(--bg2);}
[data-theme="light"] .msel-opt{color:var(--t);}
[data-theme="light"] .msel-opt.active{background:rgba(184,112,10,.12);color:var(--accent);}
.msel-opt:disabled{opacity:.4;cursor:not-allowed;}
body.msel-open{overflow:hidden;}
@media(min-width:768px){
  .mob-top-header,.mob-drawer-backdrop{display:none!important}
  .lt-date-chips{display:none}
  .don-summary-acc{border:0;background:transparent}
  .don-summary-acc summary{display:none}
  .mob-ptr-hint{display:none!important}
}

/* ── AI CHATBOT ── */
.page-head{margin-bottom:1.5rem}
#tab-ai .page-head h2{font-size:20px;font-weight:700;margin-bottom:4px}
#tab-ai #ai-chat-wrap{--card:var(--bg2);--card2:var(--bg3);--t1:var(--t)}
@media(max-width:767px){
  #tab-ai #ai-chat-wrap{height:calc(100dvh - 200px);min-height:320px}
}
.ai-bubble {
  max-width: 80%;
  padding: 10px 14px;
  border-radius: 12px;
  font-size: 13.5px;
  line-height: 1.6;
  word-break: break-word;
}
.ai-bubble.user {
  align-self: flex-end;
  background: var(--accent);
  color: #fff;
  border-bottom-right-radius: 4px;
}
.ai-bubble.assistant {
  align-self: flex-start;
  background: var(--bg3);
  color: var(--t);
  border-bottom-left-radius: 4px;
}
.ai-bubble.assistant b { color: var(--accent); }
.ai-bubble table {
  border-collapse:collapse; width:100%; margin-top:6px;
  font-size:12px;
}
.ai-bubble table th, .ai-bubble table td {
  border:1px solid var(--border); padding:4px 8px; text-align:left;
}
.ai-bubble table tr:nth-child(even) { background: rgba(255,255,255,0.04); }
.ai-typing {
  display:flex; gap:4px; align-items:center; padding:8px 0;
}
.ai-typing span {
  width:7px; height:7px; background:var(--t3);
  border-radius:50%; animation: aiDot 1.2s infinite;
}
.ai-typing span:nth-child(2) { animation-delay:.2s; }
.ai-typing span:nth-child(3) { animation-delay:.4s; }
@keyframes aiDot { 0%,60%,100%{transform:translateY(0)} 30%{transform:translateY(-5px)} }
.ai-quick-btn {
  background: var(--bg2); color: var(--t2);
  border: 1px solid var(--border); border-radius:16px;
  padding: 5px 12px; font-size: 12px; cursor:pointer;
  transition: background .15s, color .15s;
}
.ai-quick-btn:hover { background:var(--accent); color:#fff; border-color:var(--accent); }
.ai-meta {
  font-size:10px; color:var(--t3); margin-top:3px;
  align-self: flex-end;
}
.ai-meta.left { align-self:flex-start; }

/* ── CUSTOM DATE/TIME PICKER ── */
.vdp-wrap { position:relative; display:block; }
.vdp-input-row { display:flex; align-items:center; gap:0; background:var(--bg4); border:1.5px solid var(--border2); border-radius:var(--r); overflow:hidden; cursor:pointer; transition:border-color .15s; min-height:40px; }
.vdp-input-row:focus-within,.vdp-input-row:hover { border-color:var(--accent); }
.vdp-icon { padding:0 10px; color:var(--t3); font-size:18px; flex-shrink:0; }
.vdp-display { flex:1; padding:8px 6px; font-size:15px; font-weight:600; color:var(--t); background:transparent; border:none; outline:none; cursor:pointer; user-select:none; white-space:nowrap; }
.vdp-hidden { position:absolute; opacity:0; width:0; height:0; pointer-events:none; }
/* Dropdown calendar — minimal style */
.vdp-dropdown { position:fixed; z-index:99999; background:#fff; border:1px solid #e0e0e0; border-radius:10px; box-shadow:0 4px 24px rgba(0,0,0,.12); padding:0; width:280px; overflow:hidden; }
.vdp-dropdown.vdp-time { min-width:220px; width:auto; }
.vdp-header { display:flex; align-items:center; justify-content:space-between; padding:14px 16px 10px; background:#fff; color:#111; }
.vdp-header-label { font-size:17px; font-weight:700; letter-spacing:0; }
.vdp-nav-group { display:flex; align-items:center; gap:2px; }
.vdp-nav-btn { background:none; border:none; color:#888; width:28px; height:28px; border-radius:4px; font-size:14px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:color .15s,background .15s; padding:0; line-height:1; }
.vdp-nav-btn:hover { color:#333; background:#f0f0f0; }
.vdp-nav-btn.vdp-nav-today { font-size:10px; }
.vdp-dow-row { display:grid; grid-template-columns:repeat(7,1fr); padding:6px 12px 8px; border-bottom:1px solid #e8e8e8; }
.vdp-dow { text-align:center; font-size:12px; font-weight:700; color:#888; padding:2px 0; }
.vdp-days { display:grid; grid-template-columns:repeat(7,1fr); padding:8px 10px 12px; gap:2px; }
.vdp-day { aspect-ratio:1; display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:500; border-radius:8px; cursor:pointer; color:#111; transition:background .1s,color .1s; border:none; background:transparent; min-width:34px; min-height:34px; padding:0; }
.vdp-day:hover:not(.vdp-day-selected) { background:#f0f0f0; }
.vdp-day-today { font-weight:700; }
.vdp-day-selected { background:#e0e0e0!important; color:#111!important; border-radius:8px; font-weight:600; }
.vdp-day-other { color:#bbb; }
.vdp-day-empty { cursor:default; visibility:hidden; }
.vdp-dropdown.vdp-lg { min-width:380px; width:380px; }
.vdp-dropdown.vdp-lg .vdp-day { min-width:46px; min-height:46px; font-size:16px; }
.vdp-dropdown.vdp-lg .vdp-dow { font-size:13px; padding:6px 0; }
.vdp-dropdown.vdp-lg .vdp-header-label { font-size:18px; }
.vdp-dropdown.vdp-lg .vdp-days { padding:6px 14px 14px; gap:4px; }
.vdp-dropdown.vdp-lg .vdp-dow-row { padding:10px 14px 4px; }
/* Time picker */
.vdp-time-body { display:flex; align-items:center; justify-content:center; gap:0; padding:16px 20px; }
.vdp-time-col { display:flex; flex-direction:column; align-items:center; gap:6px; }
.vdp-time-sep { font-size:28px; font-weight:900; color:var(--t); padding:0 8px; margin-top:-4px; }
.vdp-time-val { font-size:40px; font-weight:900; color:var(--t); width:64px; min-width:64px; text-align:center; background:var(--bg3); border:1px solid var(--border2); border-radius:12px; padding:8px 0; outline:none; font-family:'Be Vietnam Pro',sans-serif; box-sizing:border-box; cursor:text; }
.vdp-time-val:focus { border-color:var(--accent); background:var(--bg2); }
.vdp-time-val::-webkit-outer-spin-button,.vdp-time-val::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.vdp-time-btn { background:none; border:none; color:var(--t2); cursor:pointer; padding:4px; font-size:22px; border-radius:8px; transition:background .1s; line-height:1; }
.vdp-time-btn:hover { background:var(--bg3); color:var(--accent); }
.vdp-footer { padding:10px 16px; border-top:1px solid var(--border); display:flex; justify-content:flex-end; gap:8px; }
.vdp-footer button { padding:8px 20px; border-radius:8px; font-size:14px; font-weight:700; border:none; cursor:pointer; }
.vdp-btn-cancel { background:var(--bg3); color:var(--t2); }
.vdp-btn-ok { background:var(--accent); color:#fff; }

/* ── NOTIFICATION PANEL ── */
/* Desktop: bell cố định góc trên phải, tránh sidebar 210px */
#notif-wrap-fixed {
  position: fixed;
  top: 12px;
  right: 16px;
  z-index: 99999;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
}
@media (max-width: 768px) {
  /* Bell nằm GIỮA title và avatar — không đè lên nhau */
  .mob-top-title {
    padding-left: 56px;
    padding-right: 108px;
  }
  #notif-wrap-fixed {
    top: calc(env(safe-area-inset-top, 0px) + 4px);
    right: 64px; /* 12px pad + 44px avatar + 8px gap */
    z-index: 9001;
  }
  #notif-wrap-fixed #notif-bell-btn {
    width: 44px;
    height: 44px;
    border-radius: 12px !important;
    box-shadow: none !important;
  }
  #notif-panel {
    width: calc(100vw - 16px) !important;
    max-width: 360px;
  }
  #mob-sh-more .mob-sheet-body {
    padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px)) !important;
  }
}
.notif-item { display:flex;align-items:flex-start;gap:10px;padding:10px 14px;cursor:pointer;transition:background .15s;border-bottom:1px solid var(--border); }
.notif-item:hover { background:var(--bg3); }
.notif-item.unread { background:rgba(var(--accent-rgb),.06); }
.notif-item-icon { width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px; }
.notif-item.notif-high .notif-item-icon { background:var(--red-bg);color:var(--red); }
.notif-item.notif-med .notif-item-icon { background:var(--amber-bg);color:var(--amber); }
.notif-item.notif-low .notif-item-icon { background:var(--blue-bg);color:var(--blue); }
.notif-item-body { flex:1;min-width:0; }
.notif-title { font-size:12px;font-weight:600;color:var(--t);margin-bottom:2px; }
.notif-body { font-size:11px;color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.notif-time { font-size:10px;color:var(--t3);margin-top:3px; }
.notif-dot { width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0;margin-top:4px; }
.notif-item:not(.unread) .notif-dot { display:none; }
.notif-empty { padding:24px 14px;font-size:12px;color:var(--t3);text-align:center; }
.notif-highlight { outline:2px solid var(--accent);outline-offset:2px;transition:outline .2s; }
.notif-section-title{margin:20px 0 12px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px;color:var(--t)}
.notif-section-title i{color:var(--accent)}
.notif-field-hint{font-size:11px;color:var(--t3);margin-top:4px;display:block;line-height:1.4}
.notif-return-row{display:flex;gap:8px;align-items:stretch}
.notif-return-row input{flex:1;min-width:0}
.notif-return-row select{width:108px;flex-shrink:0}
.notif-item.notif-high.staff-pickup .notif-item-icon,.notif-item.notif-high .notif-item-icon.notif-staff-pickup{background:rgba(63,136,76,.15);color:var(--green)}
.notif-item.notif-high.staff-return .notif-item-icon,.notif-item.notif-high .notif-item-icon.notif-staff-return{background:rgba(217,37,37,.12);color:var(--red)}
.notif-item.notif-read{opacity:0.55}
.notif-item.notif-read .notif-title{font-weight:400}
.notif-divider-read{text-align:center;font-size:10px;color:var(--t3);padding:6px 0 2px;border-top:1px solid var(--border);margin-top:4px}


/* ── VDP Year/Month Picker ── */
.vdp-header-clickable { cursor:pointer; user-select:none; border-radius:6px; padding:2px 6px; transition:background .15s; }
.vdp-header-clickable:hover { background:rgba(0,0,0,.07); }
.vdp-ym-picker { width:280px; }
.vdp-ym-picker.vdp-lg { width:380px; }
.vdp-ym-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:4px; padding:8px 12px 12px; }
.vdp-m-grid { grid-template-columns:repeat(4,1fr); }
.vdp-ym-cell { padding:8px 4px; border:none; border-radius:8px; background:transparent; cursor:pointer; font-size:13px; font-weight:500; color:#111; text-align:center; transition:background .12s,color .12s; }
.vdp-ym-cell:hover { background:#f0f0f0; }
.vdp-ym-cell.vdp-ym-today { font-weight:700; color:var(--accent,#b8860b); }
.vdp-ym-cell.vdp-ym-selected { background:var(--accent,#b8860b); color:#fff!important; font-weight:700; }
.vdp-ym-divider { height:1px; background:#e8e8e8; margin:0 12px; }

/* ── Phạt nguội ── */
.pn-toolbar { flex-wrap:wrap; gap:8px; }
.pn-check-badge { display:inline-block; font-size:10px; color:var(--t3); margin-top:4px; cursor:default; }
.pn-check-badge.pn-err { color:var(--amber); cursor:help; }
.pn-check-row { margin-top:2px; }
.pn-st-sel { min-width:130px; font-size:12px; padding:4px 6px; }
.pn-form-hint { font-size:11px; color:var(--t3); margin-top:4px; }
.mob-pn-list { display:flex; flex-direction:column; gap:10px; padding:4px 0 12px; }
.mob-pn-card { background:var(--bg3); border:1px solid var(--border); border-radius:14px; padding:14px; }
.mob-pn-head { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; margin-bottom:6px; }
.mob-pn-at { font-size:12px; color:var(--t2); margin-bottom:4px; }
.mob-pn-viol { font-weight:600; font-size:14px; margin-bottom:4px; }
.mob-pn-loc { font-size:12px; color:var(--t3); margin-bottom:6px; }
.mob-pn-amt { font-size:13px; font-weight:700; color:var(--red); margin-bottom:6px; }
.mob-pn-row { display:flex; justify-content:space-between; font-size:12px; margin-bottom:4px; }
.mob-pn-link { background:none; border:none; color:var(--blue); font-size:12px; padding:0; cursor:pointer; }
.mob-pn-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; padding-top:10px; border-top:1px solid var(--border); }
.mob-pn-actions button { flex:1; min-height:40px; border-radius:10px; border:1px solid var(--border); background:var(--bg4); color:var(--t2); font-size:12px; cursor:pointer; }
.mob-pn-empty { text-align:center; color:var(--t3); padding:2rem; font-size:13px; }
@media(max-width:767px){
  #tab-phatnguoi .pn-toolbar .btn { width:100%; justify-content:center; min-height:44px; }
  /* Override .card-head .toolbar .btn.ac{display:none} — tab này không dùng FAB */
  #tab-phatnguoi .pn-toolbar .btn.ac { display:inline-flex; }
}

/* ── View switcher ── */
.view-switch{display:inline-flex;border:1px solid var(--border2);border-radius:8px;overflow:hidden}
.vs-btn{border:none;background:var(--bg3);color:var(--t2);padding:7px 11px;cursor:pointer;font-size:15px;line-height:1;transition:.15s}
.vs-btn:hover{color:var(--t)}
.vs-btn.active{background:var(--accent);color:#fff}

/* ── Compact list view ── */
.xe-compact-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--border2);border-radius:var(--r);background:var(--bg3);margin-bottom:8px;cursor:pointer;transition:.15s}
.xe-compact-row:hover{border-color:var(--accent)}
.xe-compact-row .xc-name{font-weight:700;font-size:13.5px;min-width:140px}
.xe-compact-row .xc-plate{color:var(--t2);font-size:12px;min-width:90px}
.xe-compact-row .xc-price{font-size:12px;color:var(--t2);min-width:150px}
.xe-compact-row .xc-profit{font-weight:700;font-size:12.5px;margin-left:auto;white-space:nowrap}
.xe-compact-row .xc-actions{display:flex;gap:6px}

/* ── Table view ── */
.xe-table-wrap{overflow-x:auto}
.xe-table-wrap table{width:100%;border-collapse:collapse;font-size:12.5px}
.xe-table-wrap th{text-align:left;padding:8px 10px;color:var(--t2);font-size:11px;text-transform:uppercase;border-bottom:1px solid var(--border2);white-space:nowrap}
.xe-table-wrap td{padding:9px 10px;border-bottom:1px solid var(--border);white-space:nowrap}
.xe-table-wrap tr:hover td{background:var(--bg4)}

@media(max-width:767px){
  #xe-view-switch{display:none}
}

.cocdb-pills-row{display:flex;gap:4px;width:100%}
.cocdb-pill{flex:1;min-width:0;padding:.32rem .2rem;font-size:10.5px;
  border:1px solid var(--border2);background:var(--bg2);
  color:var(--t2);border-radius:8px;justify-content:center;gap:3px;
  white-space:nowrap;line-height:1.1}
.cocdb-pill i{font-size:13px;flex-shrink:0}
.cocdb-pill span{overflow:hidden;text-overflow:ellipsis}
.cocdb-pill.active{border-color:var(--accent);
  color:var(--accent);background:rgba(232,200,122,.08)}
.mob-cocdb-pills{display:flex;gap:4px;margin-bottom:10px;width:100%}
.mob-cocdb-pills .mob-hpill{flex:1;min-width:0;min-height:38px;padding:4px 2px;
  flex-direction:row;gap:3px;font-size:9.5px;border-width:1px;border-radius:9px}
.mob-cocdb-pills .mob-hpill i{font-size:13px}
.mob-cocdb-pills .mob-hpill.active{border-color:var(--accent);
  background:rgba(232,200,122,.08);color:var(--accent)}

/* ── Form tabs trong modal xe ── */
.fm-tabs{display:flex;gap:0;border-bottom:1px solid var(--border2);margin-bottom:1rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.fm-tab{border:none;background:none;color:var(--t2);padding:8px 14px;font-size:12.5px;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;flex-shrink:0;display:flex;align-items:center;gap:6px}
.fm-tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.fm-pane{display:none}
.fm-pane.active{display:block}
.xe-form-grid>.fm-tabs,.xe-form-grid>.fm-pane{grid-column:1/-1}

/* ── Toggle đăng xe ── */
.pub-toggle-card{border:1px solid var(--border2);border-radius:var(--r);padding:14px 16px;background:var(--bg3);display:flex;align-items:center;gap:14px}
.pub-toggle-card.on{border-color:var(--green);background:var(--green-bg,rgba(60,160,90,.08))}

/* ── Image gallery trong form ── */
.img-gallery{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.img-thumb{position:relative;width:84px;height:84px;border-radius:10px;overflow:hidden;border:1px solid var(--border2);background:var(--bg4)}
.img-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.img-thumb .img-del{position:absolute;top:3px;right:3px;width:22px;height:22px;border-radius:50%;border:none;background:rgba(0,0,0,.55);color:#fff;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}
.img-thumb .img-del:hover{background:var(--red,#d33)}
.img-thumb.is-cover::after{content:'Đại diện';position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.55);color:#fff;font-size:9.5px;text-align:center;padding:2px 0}
.img-add-btn{width:84px;height:84px;border-radius:10px;border:1.5px dashed var(--border2);background:none;color:var(--t3);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:11px}
.img-add-btn:hover{border-color:var(--accent);color:var(--accent)}

/* ── Giấy tờ xe ── */
.doc-dates-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:767px){.doc-dates-grid{grid-template-columns:1fr}}
.doc-imgs-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
@media(max-width:767px){.doc-imgs-grid{grid-template-columns:1fr}}
.doc-card{border:1px solid var(--border2);border-radius:var(--r);background:var(--bg3);padding:12px}
.doc-card-title{font-size:11px;font-weight:700;color:var(--t2);text-transform:uppercase;letter-spacing:.4px;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.doc-img-box{position:relative;width:100%;height:110px;border-radius:8px;overflow:hidden;border:1.5px dashed var(--border2);background:var(--bg4);display:flex;align-items:center;justify-content:center;color:var(--t3);font-size:12px;flex-direction:column;gap:4px;cursor:pointer;transition:.15s}
.doc-img-box:hover{border-color:var(--accent);color:var(--accent)}
.doc-img-box.has-img{border-style:solid}
.doc-img-box img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.doc-img-del{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;border:none;background:rgba(0,0,0,.55);color:#fff;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;z-index:2}
.doc-img-del:hover{background:var(--red,#d33)}

/* ── Thu Chi modal — chống tràn ngang (mobile) ── */
#modal-overlay.tc-modal-open,
#mob-ov-thuchi.open{
  overflow-x:hidden;
  max-width:100vw;
}
#modal-overlay.tc-modal-open .modal.tc-modal,
#mob-sh-thuchi.tc-modal{
  width:100%;
  max-width:100vw;
  box-sizing:border-box;
  overflow-x:hidden;
  touch-action:pan-y;
}
#mob-sh-thuchi.tc-modal .mob-sheet-handle{pointer-events:none}
#mob-sh-thuchi.tc-modal .mob-sheet-body{
  overflow-x:hidden;
  max-width:100%;
  min-width:0;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
#modal-overlay.tc-modal-open #modal-body{
  overflow-x:hidden;
  max-width:100%;
  min-width:0;
  overscroll-behavior:contain;
}
.tc-modal,.tc-modal *::before,.tc-modal *::after{box-sizing:border-box}
.tc-modal{overflow-x:hidden;max-width:100%}
.tc-modal input,.tc-modal select,.tc-modal textarea{
  width:100%;max-width:100%;min-width:0;box-sizing:border-box;
}
.tc-modal .mob-loai{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;
}
.tc-modal .mob-lpill{min-width:0}
.tc-modal .mob-cat-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(96px,1fr));
  gap:8px;width:100%;
}
.tc-modal .mob-cat{min-width:0;word-break:break-word}
.tc-modal .mob-quick{
  display:flex;flex-wrap:nowrap;overflow-x:auto;max-width:100%;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.tc-modal .mob-quick::-webkit-scrollbar{display:none}
.tc-modal .mob-qbtn{flex-shrink:0}
.tc-modal .mob-httt{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;
}
.tc-modal .mob-hpill{min-width:0}
.tc-modal .mob-amt-wrap{max-width:100%;min-width:0}
.tc-modal .form-group{min-width:0;max-width:100%}
.tc-modal .form-grid{width:100%;max-width:100%;min-width:0}
.tc-modal .mob-sheet-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.tc-modal-open{overflow:hidden;overflow-x:hidden;max-width:100vw}

/* ── Don form: pairs, scan, accordion ── */
.don-pair-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;grid-column:1/-1;width:100%}
.don-pair-row .form-group{min-width:0;margin:0}
.don-scan-row{display:flex;gap:8px;align-items:stretch;width:100%}
.don-scan-row input{flex:1;min-width:0}
.don-field-scan .don-scan-row{align-self:stretch}
.btn-scan{width:40px;height:40px;flex-shrink:0;border:1px solid var(--accent);border-radius:var(--r);background:var(--bg3);color:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;-webkit-tap-highlight-color:transparent}
.btn-scan i{font-size:18px}
.btn-scan:active{opacity:.85}
.btn-scan:disabled{cursor:not-allowed;pointer-events:none}

/* ── CCCD/GPLX photo strip ── */
.id-photo-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;min-height:0}
.id-photo-thumb{position:relative;width:64px;height:64px;border-radius:8px;overflow:hidden;background:var(--bg4);border:1px solid var(--border2);flex-shrink:0}
.id-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block;cursor:pointer}
.id-photo-thumb.id-photo-view{border:none;padding:0;cursor:pointer}
.id-photo-del{position:absolute;top:2px;right:2px;width:20px;height:20px;border:none;border-radius:50%;background:rgba(0,0,0,.65);color:#fff;font-size:11px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;z-index:2}
.id-photo-del:hover{background:rgba(220,53,69,.9)}
.id-photo-add{width:64px;height:64px;border:1px dashed var(--border2);border-radius:8px;background:var(--bg3);color:var(--t2);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px;font-size:10px;font-weight:600;text-align:center;line-height:1.2}
.id-photo-add span{pointer-events:none}
.id-photo-uploading{opacity:.5;display:flex;align-items:center;justify-content:center}
.id-photo-spinner{width:22px;height:22px;border:2px solid var(--border2);border-top-color:var(--accent);border-radius:50%;animation:id-photo-spin .7s linear infinite}
@keyframes id-photo-spin{to{transform:rotate(360deg)}}

.photo-source-menu-backdrop{position:fixed;inset:0;z-index:10255;background:rgba(0,0,0,.35)}
.photo-source-menu{position:fixed;z-index:10260;min-width:200px;background:var(--bg2);border:1px solid var(--border2);border-radius:10px;box-shadow:0 8px 32px rgba(0,0,0,.35);overflow:hidden;padding:4px}
.photo-source-menu.is-sheet{left:0!important;right:0!important;top:auto!important;bottom:0!important;width:100%!important;border-radius:16px 16px 0 0;padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px));min-width:0}
.photo-source-menu-opt{display:flex;align-items:center;gap:10px;width:100%;border:none;background:transparent;color:var(--t);font-size:15px;font-weight:500;padding:14px 16px;border-radius:8px;cursor:pointer;text-align:left}
.photo-source-menu-opt:hover,.photo-source-menu-opt:active{background:var(--bg4)}

.id-photo-lightbox{display:none;position:fixed;inset:0;z-index:10050;background:rgba(0,0,0,.88);align-items:center;justify-content:center;padding:16px}
.id-photo-lightbox.open{display:flex}
body.id-photo-lightbox-open{overflow:hidden}
.id-photo-lightbox img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:8px;box-shadow:0 8px 40px rgba(0,0,0,.5)}
.id-photo-lightbox-close{position:fixed;top:16px;right:16px;width:40px;height:40px;border:none;border-radius:50%;background:rgba(255,255,255,.15);color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10051}
.id-photo-lightbox-close:hover{background:rgba(255,255,255,.25)}

.don-popup-giayto{flex-direction:column;align-items:stretch!important;gap:6px}
.don-popup-giayto .val{text-align:left!important;width:100%}
.don-popup-id-group{margin-bottom:6px}
.don-popup-id-group:last-child{margin-bottom:0}
.don-popup-id-label{display:block;font-size:11px;font-weight:600;color:var(--t3);margin-bottom:4px;text-transform:uppercase;letter-spacing:.03em}
.don-popup-id-strip{display:flex;flex-wrap:wrap;gap:6px}

.don-more-acc{grid-column:1/-1;border:1px solid var(--border);border-radius:var(--r);background:var(--bg4);overflow:hidden}
.don-more-acc summary{list-style:none;cursor:pointer;padding:10px 12px;font-size:12px;font-weight:700;color:var(--t2);min-height:40px;display:flex;align-items:center}
.don-more-acc summary::-webkit-details-marker{display:none}
.don-more-inner{padding:0 12px 12px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.don-more-inner .form-group.full{grid-column:1/-1}
.don-pay-form{margin-bottom:14px}
@media(max-width:768px){
  .don-panel-grid .don-pair-row{grid-template-columns:1fr 1fr!important}
  .don-more-inner{grid-template-columns:1fr 1fr}
}

/* ── Thumbnail trong compact row ── */
.xc-thumb{width:52px;height:40px;border-radius:8px;overflow:hidden;background:var(--bg4);border:1px solid var(--border2);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--t3)}
.xc-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.xc-thumb i{font-size:18px}
