/* =====================================================================
   HECTOR MEDIA PRODUCTION - Aero Glassmorphism (Light Blue Green)
   Toi uu cho web browser + mobile app (Android / iOS)
   ===================================================================== */

:root{
  --c-primary:#3ec9c1;
  --c-secondary:#7dd3fc;
  --c-accent:#34d399;
  --c-ink:#0d3b40;
  --c-ink-soft:#4a7a80;
  --c-muted:#8aa6a9;
  --c-line:rgba(62,201,193,.22);
  --c-bg:#eef8f8;
  --c-bg-2:#dff2f5;
  --c-white:#ffffff;
  --c-danger:#ef4444;
  --c-warn:#f59e0b;
  --c-ok:#10b981;
  --c-info:#0ea5e9;

  --glass:rgba(255,255,255,.62);
  --glass-strong:rgba(255,255,255,.82);
  --glass-border:rgba(255,255,255,.7);
  --shadow-sm:0 2px 10px rgba(13,59,64,.06);
  --shadow:0 10px 30px rgba(13,59,64,.10);
  --shadow-lg:0 24px 60px rgba(13,59,64,.16);
  --radius:18px;
  --radius-sm:12px;
  --radius-lg:26px;
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --sidebar-w:264px;
  --header-h:62px;

  /* --- Bo chu tron nho (rounded small type) --- */
  --font-body:'Nunito','Quicksand',ui-rounded,-apple-system,BlinkMacSystemFont,"Segoe UI Variable Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-head:'Quicksand','Nunito',ui-rounded,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --fs-base:14px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
/* -------------------------------------------------------------------
   NEN UNG DUNG
   Ba lop chong len nhau, tat ca ve bang CSS nen KHONG tai them anh:
     1. luoi cham mo   - tao chieu sau, giong giay ky thuat
     2. duong ke cheo mo - nhip dieu nhe, khong roi mat
     3. hai quang sang + chuyen mau nen goc  - giu tong xanh cu
   Do dam duoc dat rat thap (2-4%) de chu va the (card) van noi len tren.
   ------------------------------------------------------------------- */
body{
  margin:0;
  font-family:var(--font-body);
  font-size:var(--fs-base);line-height:1.62;color:var(--c-ink);
  letter-spacing:.005em;
  background:
    radial-gradient(rgba(13,59,64,.05) 1px, transparent 1.5px) 0 0 / 26px 26px,
    repeating-linear-gradient(135deg,
      rgba(255,255,255,.34) 0 2px, transparent 2px 34px),
    radial-gradient(1100px 620px at 8% -8%, #cdf1ee 0%, transparent 55%),
    radial-gradient(900px 600px at 100% 0%, #d7ecfb 0%, transparent 55%),
    linear-gradient(180deg,var(--c-bg) 0%, var(--c-bg-2) 100%);
  background-attachment:fixed;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
  overscroll-behavior-y:none;
}

/* Hai mang mau lon, rat mo, doi cho tren tung man hinh - de trang khong
   phang lì. Dung ::before nen khong an vao bo cuc va khong bat chuot. */
body::before{
  content:'';
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    radial-gradient(620px 620px at 84% 14%, rgba(62,201,193,.26) 0%, transparent 62%),
    radial-gradient(760px 540px at 6% 86%, rgba(125,211,252,.28) 0%, transparent 64%),
    radial-gradient(460px 460px at 52% 46%, rgba(52,211,153,.15) 0%, transparent 66%),
    radial-gradient(340px 340px at 96% 74%, rgba(167,139,250,.14) 0%, transparent 68%);
}

/* -------------------------------------------------------------------
   HOA TIET TRANG TRI GOC MAN HINH
   Vai vong tron long nhau va mot chum duong cong - ve bang conic/radial
   gradient nen khong ton them mot tap tin anh nao. Do mo thap, nam duoi
   moi noi dung, khong bat chuot.
   ------------------------------------------------------------------- */
body::after{
  content:'';
  position:fixed;
  right:-120px;
  top:-140px;
  width:520px;
  height:520px;
  z-index:-1;
  pointer-events:none;
  opacity:.5;
  border-radius:50%;
  background:
    radial-gradient(circle at center,
      transparent 0 38%, rgba(62,201,193,.20) 38% 39.4%, transparent 39.4% 100%),
    radial-gradient(circle at center,
      transparent 0 50%, rgba(125,211,252,.20) 50% 51.2%, transparent 51.2% 100%),
    radial-gradient(circle at center,
      transparent 0 62%, rgba(52,211,153,.16) 62% 63%, transparent 63% 100%);
}

/* Chum vong tron thu hai o goc duoi ben trai, nho hon */
.admin-body::after{
  content:'';
  position:fixed;
  left:-160px;
  bottom:-180px;
  width:480px;
  height:480px;
  z-index:-1;
  pointer-events:none;
  opacity:.45;
  border-radius:50%;
  background:
    radial-gradient(circle at center,
      transparent 0 44%, rgba(125,211,252,.22) 44% 45.2%, transparent 45.2% 100%),
    radial-gradient(circle at center,
      transparent 0 58%, rgba(62,201,193,.18) 58% 59%, transparent 59% 100%);
}

/* Man hinh hep: bo bot hoa tiet cho do roi mat va do ton pin */
@media (max-width:760px){
  body::after{width:300px;height:300px;right:-90px;top:-90px;opacity:.4}
  .admin-body::after{display:none}
}

/* Duong luon mem o mep tren cua vung noi dung - mot net trang tri kin dao
   thay cho mang mau phang. */
.sidebar{position:relative;isolation:isolate}
.admin-main{position:relative}
.admin-main::before{
  content:'';
  position:absolute;
  left:0;right:0;top:0;
  height:190px;
  z-index:0;
  pointer-events:none;
  opacity:.5;
  background:
    radial-gradient(120% 100% at 50% -60%, rgba(255,255,255,.85) 0%, transparent 62%);
  -webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 0%,transparent 100%);
}
.admin-main > *{position:relative;z-index:1}

/* May tinh de ban: khong ve hoa tiet len phan sau thanh ben trai */
@media (prefers-reduced-motion:no-preference){
  body::before{transition:opacity .3s}
}
img{max-width:100%;height:auto;display:block}
a{color:#12868a;text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4,h5{margin:0 0 .5em;line-height:1.28;font-family:var(--font-head);font-weight:700;letter-spacing:-.005em}
h1{font-size:1.55rem}h2{font-size:1.22rem}h3{font-size:1.04rem}h4{font-size:.95rem}h5{font-size:.88rem}
p{margin:0 0 1em}
small,.small{font-size:.8rem}
.muted{color:var(--c-muted)}
.ink-soft{color:var(--c-ink-soft)}
.en{color:var(--c-ink-soft);font-style:italic;font-weight:400;font-size:.86em}
.mono{font-family:var(--font-mono)}
button,input,select,textarea,.btn{font-family:var(--font-body)}

/* ------------------------- Layout ------------------------- */
.container{width:100%;max-width:1280px;margin:0 auto;padding:0 18px}
.container-narrow{max-width:880px}
.row{display:flex;flex-wrap:wrap;gap:16px}
.col{flex:1 1 0;min-width:0}
/* Tren dien thoai cac cot phai XUONG DONG chu khong co lai con vai chuc pixel.
   .col co flex-basis 0 nen no chiu co den gan bang 0 thay vi wrap, khien
   noi dung ben trong (o nhap tin nhan, nut bam) tran ra ngoai man hinh. */
@media (max-width:760px){
  .row>.col,.row>.card,.row>aside{flex:1 1 100% !important;max-width:100%}
}

/* Khung "to giay" xem truoc chung tu (hop dong, bao gia...). Noi dung la HTML
   tu do nen co the co bang bieu rong hon man hinh -> cho cuon ngang BEN TRONG
   khung, khong day ca trang. */
.paper{overflow-x:auto}
.paper table{max-width:100%;font-size:.86rem}
.paper img{max-width:100%;height:auto}
.grid{display:grid;gap:16px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.flex{display:flex;gap:12px}
.flex-between{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.flex-center{display:flex;align-items:center;gap:10px}
/* O nhap trong mot hang ngang: mac dinh input co chieu rong toi thieu
   theo so ky tu, nen tren dien thoai no day ca hang tran ra ngoai man
   hinh. Cho phep co lai. */
.flex-center>.input,.flex-center>input,.flex-center>select,.flex-center>textarea{min-width:0;flex:1 1 auto}
.flex-wrap{flex-wrap:wrap}
.flex-1{flex:1}
.text-right{text-align:right}.text-center{text-align:center}
.mt-0{margin-top:0}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}
.mb-0{margin-bottom:0}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}
.hide{display:none !important}
.nowrap{white-space:nowrap}
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ------------------------- Glass card ------------------------- */
.card{
  background:var(--glass);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  border:1px solid var(--glass-border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:20px;
}
.card-solid{background:var(--glass-strong)}
.card-flat{box-shadow:var(--shadow-sm)}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:-4px 0 16px;flex-wrap:wrap}
.card-head h2,.card-head h3{margin:0}
.card-pad-0{padding:0;overflow:hidden}

/* ------------------------- Buttons ------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:11px 18px;border-radius:999px;border:1px solid transparent;
  font-size:.92rem;font-weight:600;cursor:pointer;
  background:var(--glass-strong);color:var(--c-ink);
  border-color:var(--glass-border);box-shadow:var(--shadow-sm);
  transition:transform .15s ease, box-shadow .2s ease, opacity .2s;
  text-decoration:none;min-height:42px;white-space:nowrap;
  -webkit-tap-highlight-color:transparent;
}
.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow);text-decoration:none}
.btn:active{transform:translateY(0)}
.btn:disabled,.btn.disabled{opacity:.55;pointer-events:none}
.btn-primary{background:linear-gradient(135deg,var(--c-primary),var(--c-secondary));color:#04343a;border-color:transparent}
.btn-dark{background:linear-gradient(135deg,#0f766e,#0e7490);color:#fff}
.btn-danger{background:linear-gradient(135deg,#f87171,#ef4444);color:#fff}
.btn-warn{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#3b2500}
.btn-ok{background:linear-gradient(135deg,#34d399,#10b981);color:#03301f}
.btn-ghost{background:transparent;border-color:var(--c-line);box-shadow:none}
.btn-sm{padding:7px 13px;font-size:.82rem;min-height:34px}
.btn-lg{padding:14px 26px;font-size:1rem;min-height:50px}
.btn-block{display:flex;width:100%}
.btn-icon{width:42px;height:42px;padding:0;border-radius:50%}

/* ------------------------- Forms ------------------------- */
.field{margin-bottom:15px}
.field label,.label{display:block;font-size:.82rem;font-weight:600;color:var(--c-ink-soft);margin-bottom:6px}
.label .en{font-weight:400}
.input,input[type=text],input[type=email],input[type=password],input[type=number],
input[type=tel],input[type=date],input[type=datetime-local],input[type=time],
input[type=search],input[type=url],select,textarea{
  width:100%;padding:11px 14px;font-size:16px;font-family:inherit;color:var(--c-ink);
  background:rgba(255,255,255,.8);border:1px solid var(--c-line);
  border-radius:var(--radius-sm);outline:none;
  transition:border-color .2s, box-shadow .2s, background .2s;
  -webkit-appearance:none;appearance:none;
}
select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%234a7a80' stroke-width='2.5'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}
textarea{min-height:110px;resize:vertical;line-height:1.6}
.input:focus,input:focus,select:focus,textarea:focus{
  border-color:var(--c-primary);background:#fff;box-shadow:0 0 0 4px rgba(62,201,193,.16)
}
.input-sm{padding:7px 10px;font-size:14px}
.checkbox,.radio{display:inline-flex;align-items:center;gap:8px;font-size:.9rem;cursor:pointer;margin-right:14px}
.checkbox input,.radio input{width:18px;height:18px;accent-color:var(--c-primary);margin:0}
.help{font-size:.78rem;color:var(--c-muted);margin-top:5px}
.error-text{font-size:.8rem;color:var(--c-danger);margin-top:5px}
fieldset{border:1px solid var(--c-line);border-radius:var(--radius-sm);padding:16px;margin:0 0 16px}
legend{font-size:.82rem;font-weight:700;color:var(--c-ink-soft);padding:0 8px}

/* ------------------------- Tables ------------------------- */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-sm)}
table.table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:620px}
table.table th{
  text-align:left;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;
  color:var(--c-ink-soft);font-weight:700;padding:12px 12px;
  background:rgba(255,255,255,.55);border-bottom:1px solid var(--c-line);white-space:nowrap
}
table.table td{padding:12px 12px;border-bottom:1px solid rgba(62,201,193,.12);vertical-align:middle}
table.table tbody tr:hover{background:rgba(255,255,255,.5)}
table.table tbody tr:last-child td{border-bottom:none}
table.table.compact th,table.table.compact td{padding:8px 10px}
table.table-mini,.table-mini{min-width:auto}   /* phai co 'table.' de thang duoc table.table{min-width:620px} */

/* ------------------------- Badges ------------------------- */
.badge{
  display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:999px;
  font-size:.75rem;font-weight:700;background:rgba(62,201,193,.16);color:#0f766e;white-space:nowrap
}
.badge-gray{background:rgba(120,140,145,.16);color:#526b6f}
.badge-blue{background:rgba(14,165,233,.15);color:#0369a1}
.badge-green{background:rgba(16,185,129,.16);color:#047857}
.badge-amber{background:rgba(245,158,11,.18);color:#92400e}
.badge-red{background:rgba(239,68,68,.15);color:#b91c1c}
.badge-violet{background:rgba(129,140,248,.18);color:#4338ca}
.dot{width:8px;height:8px;border-radius:50%;background:currentColor;display:inline-block}

/* ------------------------- Alerts ------------------------- */
.alert{padding:13px 16px;border-radius:var(--radius-sm);margin-bottom:14px;font-size:.9rem;border:1px solid transparent}
.alert-success{background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.3);color:#065f46}
.alert-error{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.3);color:#991b1b}
.alert-info{background:rgba(14,165,233,.1);border-color:rgba(14,165,233,.3);color:#075985}
.alert-warn{background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.3);color:#92400e}

/* ------------------------- Stat tiles ------------------------- */
.stat{
  background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid var(--glass-border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm);
  position:relative;overflow:hidden
}
.stat::after{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;
  background:linear-gradient(135deg,rgba(62,201,193,.22),rgba(125,211,252,.16))}
.stat .stat-label{font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--c-ink-soft);font-weight:700}
.stat .stat-value{font-size:1.7rem;font-weight:800;letter-spacing:-.02em;margin-top:4px;position:relative;z-index:1}
.stat .stat-sub{font-size:.78rem;color:var(--c-muted);margin-top:2px}

/* ------------------------- Admin shell ------------------------- */
.admin{min-height:100vh}
.admin-header{
  position:sticky;top:0;z-index:60;height:calc(var(--header-h) + var(--safe-top));
  padding-top:var(--safe-top);
  display:flex;align-items:center;gap:12px;padding-left:16px;padding-right:16px;
  background:rgba(255,255,255,.72);backdrop-filter:blur(20px) saturate(150%);
  -webkit-backdrop-filter:blur(20px) saturate(150%);
  border-bottom:1px solid var(--glass-border);
}
.admin-header .brand{display:flex;align-items:center;gap:11px;font-weight:800;color:var(--c-ink);font-size:1.06rem}
.admin-header .brand img{height:46px;width:auto}
.admin-body{display:flex;align-items:flex-start}
.admin-sidebar{
  width:var(--sidebar-w);flex:0 0 var(--sidebar-w);
  position:sticky;top:calc(var(--header-h) + var(--safe-top));
  height:calc(100vh - var(--header-h) - var(--safe-top));
  overflow-y:auto;padding:16px 12px calc(24px + var(--safe-bottom));
  border-right:1px solid var(--glass-border);
  background:rgba(255,255,255,.42);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)
}
.admin-main{flex:1;min-width:0;padding:20px 18px calc(80px + var(--safe-bottom))}
.nav-group{margin-bottom:16px}
.nav-group .nav-title{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--c-muted);
  font-weight:800;padding:0 12px;margin-bottom:6px}
.nav-item{
  display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;
  color:var(--c-ink-soft);font-size:.9rem;font-weight:600;margin-bottom:2px;text-decoration:none
}
.nav-item:hover{background:rgba(255,255,255,.72);color:var(--c-ink);text-decoration:none}
.nav-item.active{background:linear-gradient(135deg,rgba(62,201,193,.28),rgba(125,211,252,.22));
  color:#0b5b58;box-shadow:inset 0 0 0 1px rgba(62,201,193,.3)}
.nav-item .ico{width:20px;text-align:center;flex:0 0 20px}
.nav-item .count{margin-left:auto;background:var(--c-danger);color:#fff;border-radius:999px;
  font-size:.68rem;padding:1px 7px;font-weight:700}
/* Nhom con trong menu ("Tra cuu giay to") - gap lai duoc de menu khong dai */
.nav-sub{margin-bottom:2px}
.nav-sub>summary{list-style:none}
.nav-sub>summary::-webkit-details-marker{display:none}
.nav-sub>summary::after{content:'▸';margin-left:auto;font-size:.75rem;opacity:.6;transition:transform .15s}
.nav-sub[open]>summary::after{transform:rotate(90deg)}
.nav-sub>.nav-item{padding-left:34px;font-weight:500;font-size:.86rem}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px;flex-wrap:wrap}
.page-head h1{margin:0;font-size:1.45rem}
.page-head .sub{color:var(--c-ink-soft);font-size:.88rem;margin-top:2px}
.breadcrumb{font-size:.8rem;color:var(--c-muted);margin-bottom:6px}
.breadcrumb a{color:var(--c-ink-soft)}

/* Avatar */
.avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;background:linear-gradient(135deg,var(--c-primary),var(--c-secondary));
  display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.85rem;flex:0 0 auto}
.avatar-sm{width:28px;height:28px;font-size:.72rem}
.avatar-lg{width:64px;height:64px;font-size:1.3rem}

/* Tabs */
.tabs{display:flex;gap:6px;border-bottom:1px solid var(--c-line);margin-bottom:18px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.tab{padding:10px 16px;border-radius:12px 12px 0 0;font-size:.88rem;font-weight:600;color:var(--c-ink-soft);
  white-space:nowrap;cursor:pointer;border:1px solid transparent;border-bottom:none;text-decoration:none}
.tab.active{background:var(--glass-strong);color:var(--c-ink);border-color:var(--glass-border)}

/* Chips / filters */
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.chip{padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.6);border:1px solid var(--c-line);
  font-size:.82rem;font-weight:600;color:var(--c-ink-soft);cursor:pointer;text-decoration:none;white-space:nowrap}
.chip.active{background:linear-gradient(135deg,var(--c-primary),var(--c-secondary));color:#04343a;border-color:transparent}

/* Pagination */
.pager{display:flex;gap:6px;justify-content:center;margin-top:20px;flex-wrap:wrap}
.pager a,.pager span{padding:8px 13px;border-radius:10px;background:rgba(255,255,255,.62);
  border:1px solid var(--c-line);font-size:.85rem;font-weight:600;color:var(--c-ink-soft)}
.pager .active{background:var(--c-primary);color:#04343a;border-color:transparent}

/* Modal */
.modal-backdrop{position:fixed;inset:0;background:rgba(8,40,44,.42);backdrop-filter:blur(6px);
  z-index:200;display:none;align-items:center;justify-content:center;padding:16px}
.modal-backdrop.open{display:flex}
.modal{background:rgba(255,255,255,.92);backdrop-filter:blur(24px);border:1px solid var(--glass-border);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:640px;
  max-height:88vh;overflow-y:auto;padding:24px;animation:pop .22s ease}
.modal-lg{max-width:900px}
@keyframes pop{from{transform:scale(.96) translateY(10px);opacity:0}to{transform:none;opacity:1}}
.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--c-muted);line-height:1}

/* Toast */
#toast-wrap{position:fixed;right:16px;bottom:calc(16px + var(--safe-bottom));z-index:300;display:flex;
  flex-direction:column;gap:8px;max-width:calc(100vw - 32px)}
.toast{background:rgba(255,255,255,.95);border:1px solid var(--glass-border);border-radius:14px;
  padding:12px 16px;box-shadow:var(--shadow-lg);font-size:.88rem;animation:slidein .25s ease;max-width:380px}
.toast.ok{border-left:4px solid var(--c-ok)}
.toast.err{border-left:4px solid var(--c-danger)}
.toast.info{border-left:4px solid var(--c-info)}
@keyframes slidein{from{transform:translateX(30px);opacity:0}to{transform:none;opacity:1}}

/* Progress */
.progress{height:8px;border-radius:999px;background:rgba(62,201,193,.16);overflow:hidden}
.progress > span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--c-primary),var(--c-secondary))}

/* Empty state */
.empty{text-align:center;padding:48px 20px;color:var(--c-muted)}
.empty .icon{font-size:2.4rem;margin-bottom:8px;opacity:.55}

/* Mobile bottom nav (app) */
.mobile-nav{display:none}
/* Con so tin chua doc tren thanh duoi cua ung dung dien thoai */
.nav-dot{
  position:absolute;top:2px;right:calc(50% - 22px);min-width:17px;height:17px;padding:0 4px;
  display:inline-flex;align-items:center;justify-content:center;
  background:#ef4444;color:#fff;font-size:10px;font-weight:800;line-height:1;
  border-radius:999px;box-shadow:0 0 0 2px rgba(255,255,255,.9)
}

/* ------------------------- Responsive ------------------------- */
@media (max-width:1100px){
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  :root{--sidebar-w:250px}
  .admin-sidebar{
    position:fixed;left:0;top:0;height:100vh;z-index:120;
    transform:translateX(-102%);transition:transform .28s cubic-bezier(.4,0,.2,1);
    background:rgba(255,255,255,.94);backdrop-filter:blur(24px);padding-top:calc(16px + var(--safe-top));
    box-shadow:var(--shadow-lg)
  }
  .admin-sidebar.open{transform:none}
  .sidebar-mask{position:fixed;inset:0;background:rgba(8,40,44,.4);z-index:110;display:none}
  .sidebar-mask.open{display:block}
  .admin-main{padding:16px 14px calc(88px + var(--safe-bottom))}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .card{padding:16px;border-radius:16px}
  .page-head h1{font-size:1.25rem}
  .mobile-nav{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:100;
    padding:8px 6px calc(8px + var(--safe-bottom));
    background:rgba(255,255,255,.9);backdrop-filter:blur(20px);
    border-top:1px solid var(--glass-border)
  }
  .mobile-nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;
    font-size:.66rem;font-weight:700;color:var(--c-muted);padding:6px 2px;text-decoration:none;border-radius:12px}
  .mobile-nav a.active{color:#0b5b58;background:rgba(62,201,193,.14)}
  .mobile-nav .ico{font-size:1.15rem}
}
@media (max-width:520px){
  body{font-size:13.5px}
  .container{padding:0 14px}
  .btn{padding:10px 15px}
  .modal{padding:18px;border-radius:20px}
  .stat .stat-value{font-size:1.4rem}
  table.table th,table.table td{padding:10px 8px;font-size:.85rem}
}

/* ------------------------- Print ------------------------- */
@media print{
  body{background:#fff !important;color:#000;font-size:12pt}
  .no-print,.admin-header,.admin-sidebar,.mobile-nav,#toast-wrap{display:none !important}
  .card,.paper{box-shadow:none !important;border:none !important;background:#fff !important;backdrop-filter:none !important}
  .admin-main{padding:0}
  a{color:#000;text-decoration:none}
  .page-break{page-break-after:always}
}

/* ------------------------- Hướng dẫn sử dụng ------------------------- */
.help-btn{
  width:22px;height:22px;flex:0 0 auto;border-radius:50%;padding:0;
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--font-head);font-weight:700;font-size:.82rem;line-height:1;
  color:#0b5b58;background:rgba(62,201,193,.16);border:1px solid rgba(62,201,193,.34);
  cursor:pointer;transition:transform .18s, background .2s, box-shadow .2s;
  vertical-align:middle;margin-left:6px
}
.help-btn:hover{background:var(--c-primary);color:#04343a;transform:scale(1.12);
  box-shadow:0 4px 12px -3px rgba(62,201,193,.8)}
.help-btn:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px}

.help-modal{max-width:620px}
.help-modal h4{margin:16px 0 6px;font-size:.9rem;color:#0b5b58;
  text-transform:uppercase;letter-spacing:.05em}
.help-intro{color:var(--c-ink-soft);font-size:.92rem;margin-bottom:4px}
.help-modal code{background:rgba(62,201,193,.14);padding:1px 6px;border-radius:6px;
  font-family:var(--font-mono);font-size:.85em;color:#0f766e}
.help-steps{padding-left:1.25em;margin:0;counter-reset:hs}
.help-steps li{margin-bottom:9px;font-size:.9rem;line-height:1.6}
.help-tips{list-style:none;padding:0;margin:0}
.help-tips li{
  position:relative;padding:9px 12px 9px 34px;margin-bottom:7px;border-radius:12px;
  background:rgba(245,158,11,.09);border:1px solid rgba(245,158,11,.22);
  font-size:.87rem;line-height:1.6
}
.help-tips li::before{content:"💡";position:absolute;left:11px;top:8px;font-size:.95rem}
.help-foot{display:flex;justify-content:space-between;gap:10px;margin-top:18px;
  padding-top:14px;border-top:1px solid var(--c-line);flex-wrap:wrap}

/* Sổ tay hướng dẫn */
.hb-toc{position:sticky;top:calc(var(--header-h) + var(--safe-top) + 16px)}
.hb-toc a{display:block;padding:7px 12px;border-radius:10px;font-size:.85rem;
  color:var(--c-ink-soft);font-weight:600}
.hb-toc a:hover{background:rgba(62,201,193,.13);color:#0b5b58;text-decoration:none}
.hb-chapter{margin-bottom:34px}
.hb-chapter > h2{padding-bottom:8px;border-bottom:2px solid var(--c-primary);margin-bottom:18px}
.hb-item{margin-bottom:20px;padding:20px;border-radius:18px;background:var(--glass);
  border:1px solid var(--glass-border);box-shadow:var(--shadow-sm)}
.hb-item h3{display:flex;align-items:center;gap:9px;margin-bottom:6px}
.hb-item h3 .ic{font-size:1.2rem}
@media (max-width:900px){
  .hb-toc{position:static}
  /* Cot muc luc 236px + cot noi dung khong vua man hinh dien thoai:
     xep doc lai, muc luc nam tren. */
  .hb-page{flex-direction:column}
  .hb-page > aside{flex:1 1 auto !important;max-width:100% !important;width:100%}
}

/* ------------------------- Thao tác chứng từ ------------------------- */
.doc-actions-bar{display:flex;gap:8px;flex-wrap:wrap;padding:12px 14px;margin-bottom:16px;
  border-radius:16px;background:rgba(62,201,193,.09);border:1px solid var(--c-line)}

/* Tài liệu đã ký / scan */
.scan-upload{padding:14px;border:1px dashed var(--c-line);border-radius:14px;
  background:rgba(255,255,255,.5);margin-bottom:16px}
.scan-upload .field{margin-bottom:10px}
.scan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.scan-item{position:relative;display:flex;gap:11px;padding:10px;border-radius:14px;
  background:rgba(255,255,255,.72);border:1px solid var(--c-line)}
.scan-thumb{flex:0 0 56px;width:56px;height:56px;border-radius:11px;overflow:hidden;
  display:flex;align-items:center;justify-content:center;background:rgba(62,201,193,.13)}
.scan-thumb img{width:100%;height:100%;object-fit:cover}
.scan-ext{font-family:var(--font-head);font-weight:700;font-size:.72rem;color:#0f766e}
.scan-meta{min-width:0;flex:1}
.scan-name{display:block;font-weight:600;font-size:.85rem;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.scan-del{position:absolute;right:6px;top:6px;width:20px;height:20px;border-radius:50%;
  border:none;background:rgba(239,68,68,.12);color:var(--c-danger);cursor:pointer;
  font-size:1rem;line-height:1;padding:0;opacity:0;transition:opacity .2s}
.scan-item:hover .scan-del{opacity:1}
.scan-del:hover{background:var(--c-danger);color:#fff}

/* Bảng luồng công việc trên trang chi tiết */
.flow-steps{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.flow-step{display:flex;align-items:center;gap:7px;padding:8px 14px;border-radius:999px;
  font-size:.8rem;font-weight:600;background:rgba(255,255,255,.6);
  border:1px solid var(--c-line);color:var(--c-muted)}
.flow-step .n{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:.68rem;font-weight:800;background:rgba(0,0,0,.06)}
.flow-step.done{background:rgba(16,185,129,.13);border-color:rgba(16,185,129,.32);color:#047857}
.flow-step.done .n{background:var(--c-ok);color:#fff}
.flow-step.now{background:linear-gradient(135deg,var(--c-primary),var(--c-secondary));
  border-color:transparent;color:#04343a;box-shadow:0 6px 16px -6px rgba(62,201,193,.9)}
.flow-step.now .n{background:rgba(255,255,255,.75);color:#04343a}

/* ============================================================
   LỊCH SỰ KIỆN DẠNG THÁNG
   ============================================================ */
.cal-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px;align-items:start}
.cal-staff{position:sticky;top:calc(var(--header-h) + var(--safe-top) + 14px);max-height:calc(100vh - 130px);
  overflow-y:auto}
.cal-staff #staffList{max-height:52vh;overflow-y:auto}
.staff-item{display:flex;align-items:center;gap:9px;padding:8px;border-radius:12px;cursor:grab;
  border:1px solid transparent;transition:background .18s, border-color .18s}
.staff-item:hover{background:rgba(62,201,193,.1)}
.staff-item.picked{background:rgba(62,201,193,.2);border-color:var(--c-primary)}
.staff-item.dragging{opacity:.45}
.staff-name{font-weight:600;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.staff-rate{font-size:.7rem;font-weight:700;color:#0f766e;background:rgba(62,201,193,.15);
  padding:2px 7px;border-radius:999px;white-space:nowrap}

.cal-main{min-width:0}
.cal-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:6px}
.cal-wd{text-align:center;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--c-ink-soft);padding:6px 0}
.cal-wd.weekend{color:var(--c-danger)}

.cal-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.cal-day{
  min-height:124px;border-radius:14px;padding:6px;display:flex;flex-direction:column;
  background:rgba(255,255,255,.66);border:1px solid var(--c-line);
  transition:background .18s, box-shadow .18s
}
.cal-day.outside{background:rgba(255,255,255,.3);opacity:.55}
.cal-day.weekend{background:rgba(125,211,252,.12)}
.cal-day.today{border-color:var(--c-primary);box-shadow:0 0 0 2px rgba(62,201,193,.28)}
.cal-day.drop{background:rgba(62,201,193,.2);box-shadow:inset 0 0 0 2px var(--c-primary)}
.cal-day-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.cal-day-head .d{font-family:var(--font-head);font-weight:700;font-size:.86rem;color:var(--c-ink-soft)}
.cal-day.today .cal-day-head .d{
  background:var(--c-primary);color:#04343a;width:23px;height:23px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;font-size:.78rem
}
.cal-add{width:19px;height:19px;border-radius:6px;border:none;cursor:pointer;padding:0;line-height:1;
  background:rgba(62,201,193,.16);color:#0b5b58;font-weight:700;opacity:0;transition:opacity .18s}
.cal-day:hover .cal-add{opacity:1}
.cal-events{display:flex;flex-direction:column;gap:4px;overflow:hidden}

.cal-event{
  --ec:#3ec9c1;
  border-radius:9px;padding:5px 7px;cursor:pointer;overflow:hidden;
  background:color-mix(in srgb, var(--ec) 16%, #ffffff);
  border-left:3px solid var(--ec);
  box-shadow:0 1px 3px rgba(13,59,64,.1);
  transition:transform .16s, box-shadow .16s
}
.cal-event:hover{transform:translateX(2px);box-shadow:0 5px 14px -4px rgba(13,59,64,.3)}
.cal-event.dragging{opacity:.4}
.cal-event.cancelled{opacity:.5;text-decoration:line-through}
.cal-event-top{display:flex;gap:5px;align-items:baseline}
.cal-time{font-size:.64rem;font-weight:800;color:var(--ec);flex:0 0 auto}
.cal-title{font-size:.74rem;font-weight:700;color:var(--c-ink);overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.cal-sub{font-size:.63rem;color:var(--c-ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-crew{display:flex;align-items:center;gap:2px;margin-top:3px;flex-wrap:wrap}
.cal-av{width:18px;height:18px;border-radius:50%;object-fit:cover;border:1.5px solid #fff;
  margin-left:-4px;background:var(--ec)}
.cal-av:first-child{margin-left:0}
.cal-av.letter,.cal-av.more{display:inline-flex;align-items:center;justify-content:center;
  font-size:.56rem;font-weight:800;color:#fff}
.cal-av.more{background:var(--c-ink-soft)}
.cal-cash{margin-left:auto;font-size:.62rem;font-weight:800;color:#0f766e;
  background:rgba(255,255,255,.75);padding:1px 5px;border-radius:999px}
.cal-more{background:none;border:none;cursor:pointer;font-size:.66rem;font-weight:700;
  color:var(--c-ink-soft);padding:2px;text-align:left}

/* Bảng chọn màu sự kiện */
.color-picker{display:flex;gap:7px;flex-wrap:wrap}
.color-dot{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;
  padding:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 2px 6px rgba(13,59,64,.2);transition:transform .15s}
.color-dot:hover{transform:scale(1.15)}
.color-dot.on{border-color:var(--c-ink);transform:scale(1.15)}

/* Ekip và mức cash trong hộp sự kiện */
.crew-row{display:flex;align-items:center;gap:9px;padding:7px 0;
  border-bottom:1px solid rgba(62,201,193,.14)}
.crew-name{flex:1;min-width:0;font-size:.86rem;font-weight:600}
.crew-rate{width:120px;flex:0 0 120px;text-align:right}

@media (max-width:1000px){
  .cal-layout{grid-template-columns:1fr}
  .cal-staff{position:static;max-height:none}
  .cal-staff #staffList{max-height:190px}
}
@media (max-width:640px){
  .cal-month{gap:3px}
  .cal-day{min-height:78px;padding:4px;border-radius:10px}
  .cal-title{font-size:.66rem}
  .cal-sub,.cal-cash{display:none}
  .cal-av{width:15px;height:15px}
  .cal-add{opacity:1}
}

/* ------------------------- Biểu đồ báo cáo ------------------------- */
.bar-chart{display:flex;align-items:flex-end;gap:10px;height:220px;padding:14px 4px 0;overflow-x:auto}
.bar-col{flex:1 1 46px;min-width:46px;display:flex;flex-direction:column;align-items:center;height:100%}
.bar-stack{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px}
.bar{width:44%;min-height:3px;border-radius:6px 6px 0 0;transition:height .5s cubic-bezier(.2,.8,.3,1)}
.bar-rev{background:linear-gradient(180deg,var(--c-primary),#0f766e)}
.bar-col2{background:linear-gradient(180deg,rgba(125,211,252,.9),rgba(14,165,233,.65))}
.bar-label{font-size:.68rem;font-weight:700;color:var(--c-ink-soft);margin-top:6px;white-space:nowrap}
.bar-value{font-size:.62rem;color:var(--c-muted);white-space:nowrap}

.funnel-row{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.funnel-label{flex:0 0 118px;font-size:.82rem;font-weight:600;color:var(--c-ink-soft)}
.funnel-track{flex:1;height:20px;border-radius:999px;background:rgba(62,201,193,.12);overflow:hidden}
.funnel-fill{height:100%;border-radius:999px;transition:width .6s cubic-bezier(.2,.8,.3,1)}
.funnel-num{flex:0 0 44px;text-align:right;font-family:var(--font-head);font-size:.95rem}

/* Thong bao loi ngay tren luoi lich */
.cal-error{
  margin:0 0 10px; padding:10px 14px; border-radius:10px;
  background:#fef2f2; color:#991b1b; border:1px solid #fecaca;
  font-size:13px; line-height:1.5; word-break:break-word;
}

/* Hop thu chat khach hang trong quan tri */
.wc-msg{display:flex;flex-direction:column;max-width:78%}
.wc-msg .who{font-size:.7rem;font-weight:700;color:var(--c-muted);margin-bottom:2px}
.wc-msg .body{padding:9px 13px;border-radius:14px;font-size:.88rem;line-height:1.5;
  white-space:pre-wrap;word-break:break-word}
.wc-msg .at{font-size:.66rem;color:var(--c-muted);margin-top:3px}
.wc-msg.guest{align-self:flex-start}
.wc-msg.guest .body{background:#eef7f7;border:1px solid rgba(62,201,193,.24);border-bottom-left-radius:5px}
.wc-msg.staff{align-self:flex-end;align-items:flex-end}
.wc-msg.staff .body{background:linear-gradient(135deg,var(--c-primary),var(--c-secondary));color:#04343a;
  border-bottom-right-radius:5px}
.wc-msg.system{align-self:center;max-width:100%}
.wc-msg.system .body{background:transparent;color:var(--c-muted);font-size:.76rem;font-style:italic;padding:2px 0}
.wc-msg.system .at{display:none}

/* Ban do job */
.job-item{
  display:flex;gap:10px;padding:10px;border-radius:12px;cursor:pointer;
  border:1px solid transparent;transition:background .2s,border-color .2s
}
.job-item:hover{background:rgba(62,201,193,.08);border-color:rgba(62,201,193,.28)}
.job-item.nogeo{opacity:.72}
.job-item .dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto;margin-top:5px}
.job-item .jt{font-weight:600;font-size:.88rem;line-height:1.3}
.job-item .jl{margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.job-item .jc{display:flex;gap:3px;margin-top:5px}
.job-item .ja{display:flex;gap:6px;margin-top:7px;flex-wrap:wrap}
.avatar-xs{width:22px;height:22px;font-size:.62rem}
.btn-xs{padding:3px 9px;font-size:.7rem;border-radius:999px}

/* Khach chat chua duoc tra loi: to do de de nhan biet */
.conv-item.lead-waiting{
  background:rgba(239,68,68,.09) !important;
  border-left:3px solid #ef4444;
  padding-left:9px
}
.conv-item.lead-waiting:hover{background:rgba(239,68,68,.15) !important}
.conv-item.lead-waiting.active{background:rgba(239,68,68,.18) !important}
.lead-tag{
  display:inline-block;margin-top:3px;padding:1px 8px;border-radius:999px;
  font-size:.66rem;font-weight:800;color:#fff;background:#ef4444
}
.badge-danger{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca}
.stat.stat-danger{box-shadow:0 0 0 2px #ef4444 inset}
a.stat{display:block;color:inherit}
a.stat:hover{transform:translateY(-2px)}
.pass-out{margin-left:6px;color:var(--c-muted)}
.pass-out.on{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;
  color:#0d7c78;background:rgba(62,201,193,.12);padding:2px 8px;border-radius:6px;letter-spacing:.08em}
/* Danh sach hoi thoai khong duoc keo gian cot ben trai khi tin nhan dai */
.conv-item{min-width:0}
.conv-item > div{min-width:0}

@media (max-width:560px){
  .admin-header .brand img{height:36px}
}

/* Chon ngon ngu ban in chung tu */
.doc-lang{display:inline-flex;align-items:center;gap:4px;padding:3px;border-radius:999px;
  background:rgba(62,201,193,.1);border:1px solid rgba(62,201,193,.28)}
.doc-lang .dl-label{font-size:.72rem;color:var(--c-muted);padding:0 6px 0 8px}
.doc-lang button{
  border:0;background:none;cursor:pointer;padding:5px 11px;border-radius:999px;
  font-family:inherit;font-size:.76rem;font-weight:600;color:var(--c-ink-soft)
}
.doc-lang button:hover{background:rgba(62,201,193,.16)}
.doc-lang button.on{background:linear-gradient(135deg,var(--c-primary),var(--c-secondary));color:#04343a;
  box-shadow:0 4px 10px -4px rgba(62,201,193,.8)}

/* Khoi tinh trang ky cua chung tu */
.signed-box.is-signed{border-color:rgba(16,185,129,.45);box-shadow:0 0 0 1px rgba(16,185,129,.25) inset}
.signed-info{display:flex;flex-direction:column;gap:5px;padding:11px 13px;border-radius:12px;
  background:rgba(16,185,129,.09);border:1px solid rgba(16,185,129,.28);font-size:.86rem}
.scan-list{list-style:none;padding:0;margin:6px 0 0}
.scan-list li{display:flex;gap:8px;align-items:center;padding:5px 0;font-size:.84rem;
  border-bottom:1px dashed var(--c-line)}
.scan-list li:last-child{border-bottom:0}

/* ================= KHUNG SOAN THAO CO THANH CONG CU ================= */
.rich-wrap{border:1px solid var(--line,#cfe3e4);border-radius:12px;overflow:hidden;background:#fff}
.rich-toolbar{display:flex;flex-wrap:wrap;gap:3px;align-items:center;
  padding:6px 8px;background:linear-gradient(180deg,#f4fbfb,#eaf5f5);
  border-bottom:1px solid var(--line,#cfe3e4);position:sticky;top:0;z-index:3}
.rich-btn{border:1px solid transparent;background:transparent;border-radius:7px;
  padding:4px 8px;min-width:30px;font-size:.82rem;line-height:1.3;cursor:pointer;
  color:#12262a;font-family:inherit;white-space:nowrap}
.rich-btn:hover{background:#fff;border-color:#cfe3e4}
.rich-btn:active{background:#dff1f0}
.rich-sep{width:1px;height:18px;background:#cfe3e4;margin:0 4px}
.rich-body{padding:16px 18px;min-height:180px;line-height:1.7;outline:none;
  font-size:.95rem;color:#12262a;overflow-x:auto}
.rich-body:focus{background:#fffef8}
.rich-body table{border-collapse:collapse;width:100%;margin:10px 0}
.rich-body table th,.rich-body table td{border:1px solid #9db9bb;padding:6px 9px;
  vertical-align:top;font-size:.9rem}
.rich-body table th{background:#eef7f7;font-weight:700;text-align:left}
.rich-body table.plain th,.rich-body table.plain td{border:0;padding:2px 6px}
.rich-body table.plain{outline:1px dashed #cfe3e4}
.rich-body small{font-size:.78em;font-style:italic;color:#1d5fa8}
.rich-body h3{font-size:1rem;margin:14px 0 6px}
.rich-body ul,.rich-body ol{padding-left:22px;margin:6px 0}
.rich-body p{margin:6px 0}

/* ================= BANG KE DONG TIEN (de nghi thanh toan) ================= */
.li-table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden}
.li-table th,.li-table td{border:1px solid var(--line,#cfe3e4);padding:6px 8px;font-size:.88rem}
.li-table th{background:#eef7f7;font-weight:700;text-align:left;font-size:.8rem}
.li-table input{width:100%;border:0;background:transparent;padding:4px 2px;font:inherit;color:inherit}
.li-table input:focus{outline:2px solid #9fd7d3;border-radius:5px;background:#fffef8}
.li-table td.num input{text-align:right}
.li-table tfoot td{background:#f4fbfb;font-weight:700}
.li-del{border:0;background:transparent;cursor:pointer;color:#b91c1c;font-size:1rem;line-height:1}
.li-actions{display:flex;gap:8px;align-items:center;margin-top:8px;flex-wrap:wrap}

/* ================= QUY TRINH NGHIEP VU ================= */
.wf-map{overflow-x:auto}
.wf-chain{display:flex;align-items:stretch;gap:4px;min-width:max-content;padding:4px 2px}
.wf-node{flex:0 0 152px;display:flex;flex-direction:column;gap:2px;padding:12px 10px;
  border-radius:12px;text-decoration:none;background:#fff;border:1px solid var(--line,#cfe3e4);
  border-top:3px solid var(--wf,#0d7c78);transition:transform .12s,box-shadow .12s}
.wf-node:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(13,124,120,.14)}
.wf-ico{font-size:1.35rem;line-height:1}
.wf-no{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--wf,#0d7c78);font-weight:700}
.wf-name{font-weight:700;font-size:.9rem;color:#12262a;line-height:1.25}
.wf-short{font-size:.74rem;color:#5b8085;line-height:1.35}
.wf-arrow{align-self:center;color:#9db9bb;font-size:1.1rem;flex:0 0 auto}
.wf-legend{margin-top:10px;font-size:.8rem;color:#5b8085;min-width:0}

.wf-dates{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.wf-date{background:#fff;border:1px solid var(--line,#cfe3e4);border-radius:999px;
  padding:5px 12px;font-size:.84rem;font-weight:600;white-space:nowrap}
.wf-le{color:#0d7c78;font-weight:800}

.wf-stage{border-left:3px solid var(--wf,#0d7c78)}
.wf-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:8px}
.wf-badge{flex:0 0 auto;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;
  font-size:1.25rem;background:color-mix(in srgb,var(--wf,#0d7c78) 12%,white)}
.wf-why{margin:0 0 12px;line-height:1.7;color:#2a4245}
.wf-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;
  background:#f4fbfb;border-radius:11px;padding:12px 14px;margin-bottom:12px}
.wf-facts .label{display:block;font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;
  color:#5b8085;font-weight:700;margin-bottom:2px}
.wf-facts > div{font-size:.86rem;line-height:1.5}
.wf-h4{margin:14px 0 6px;font-size:.86rem;letter-spacing:.04em;text-transform:uppercase;color:#5b8085}
@media (max-width:640px){
  .wf-node{flex-basis:140px}
  .wf-facts{grid-template-columns:1fr}
}
@media print{
  .wf-node:hover{transform:none;box-shadow:none}
  .wf-stage{break-inside:avoid}
}

/* Chay trong ung dung di dong: chi dung khu quan tri, khong loi ra website */
.native-app .hide-in-app{display:none!important}

/* =====================================================================
   GIAO DIEN DIEN THOAI - SUA TRAN NGANG VA KHOA PHONG TO
   =====================================================================
   Loi cu: cac lop .hide-sm / .hide-desktop duoc dung trong giao dien
   nhung CHUA HE duoc dinh nghia o day, nen ten thuong hieu va ho ten
   nguoi dung luon hien tren thanh tren -> thanh tren rong hon man hinh
   65px -> ca trang bi day sang trai, chu bi cat mat mot ben (dung nhu
   anh chup nguoi dung gui).
   ===================================================================== */

/* --- Hien / an theo be ngang man hinh --- */
.hide-sm{display:inline}
.only-sm{display:none}
.hide-desktop{display:none}
@media (max-width:900px){
  .hide-desktop{display:inline-flex}
}
@media (max-width:640px){
  .hide-sm{display:none !important}
  .only-sm{display:inline}
}

/* --- Khong bao gio cho trang chay ngang ---
   LUU Y QUAN TRONG: KHONG dat overflow-x:hidden len html/body.
   Khi body co "min-height:100vh" va bi dat overflow-x, trinh duyet bien
   body thanh mot khung cuon rieng cao dung bang man hinh -> ca trang
   KHONG KEO XUONG DUOC nua (scrollHeight = clientHeight = chieu cao man
   hinh). Day dung la loi "khong keo xuong xem het noi dung".
   Cach dung: sua tan goc tung cho bi tran (bang, thanh tren, o luoi)
   nhu ben duoi, khong bit bang overflow tren the goc. */
.admin-main,.container,.card,.page-head{min-width:0;max-width:100%}

/* O luoi phai duoc phep co lai nho hon noi dung ben trong,
   neu khong mot cai bang nho cung keo ca cot rong ra. */
@media (max-width:900px){
  .grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}
  .grid > *{min-width:0}
}

/* --- Bang: cuon ngang trong khung rieng, khong day ca trang --- */
/* overflow-y:hidden (chu khong de mac dinh) la co y: mot khung chi cuon
   NGANG thi khi nguoi dung vuot doc, trinh duyet biet ngay la phai cuon
   CA TRANG chu khong giu lai trong khung -> khong bao gio bi "keo xuong
   khong duoc" khi ngon tay dat trung vao bang. */
.table-scroll{
  max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch
}
.table-scroll > table{margin-bottom:0}
/* Trong khung cuon, bang duoc lay be rong tu nhien cua no */
.table-scroll > table.table{min-width:100%;width:auto}

/* --- Chuoi dai (email, duong dan, ma so) khong duoc lam vo bo cuc --- */
/* break-word chu KHONG dung "anywhere": "anywhere" cho phep ngat giua
   tu khi tinh be rong toi thieu, khien o trong bang co lai con mot chu
   cai mot dong ("Thom / as / Pham"). break-word chi ngat khi that su
   khong con cach nao khac. */
body,.card,td,th,p,li,dd,dt{overflow-wrap:break-word}
pre,code{white-space:pre-wrap;overflow-wrap:anywhere}
img,video,canvas,svg,iframe{max-width:100%;height:auto}

/* --- Thanh tren: cho phep co lai, khong tran --- */
.admin-header{max-width:100%;overflow:hidden}
.admin-header .brand span{
  max-width:34vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
#btnUser span{max-width:28vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* --- Dai thanh tab (Cai dat) cuon ngang thay vi tran --- */
.tabs{max-width:100%;flex-wrap:nowrap;scrollbar-width:thin}
.tabs .tab{flex:0 0 auto;white-space:nowrap}

/* =====================================================================
   KHOA PHONG TO / THU NHO TRONG UNG DUNG DI DONG
   ---------------------------------------------------------------------
   Viec khoa zoom do BA cho lo, deu la cach an toan, KHONG dung toi
   touch-action hay chan su kien cham:
     1. the meta viewport (user-scalable=no, maximum-scale=1)
     2. WebView Android: setSupportZoom(false), setTextZoom(100)
     3. khong cho co chu he thong phong to layout
   TUYET DOI KHONG dat "touch-action" len html/body va KHONG goi
   preventDefault() trong touchmove/touchend: tren WebView, viec do lam
   chet luon cu vuot de cuon trang - nguoi dung khong keo xuong xem het
   noi dung duoc.
   ===================================================================== */
.native-app body{-webkit-text-size-adjust:100%;text-size-adjust:100%}

/* ================= KHAI BAO THIET BI VAO CONG ================= */
.gp-row{border:1px solid var(--c-line,#cfe3e4);border-radius:14px;padding:12px 14px;margin-bottom:12px;background:rgba(255,255,255,.55)}
.gp-row-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.gp-no{font-weight:800;color:var(--c-primary,#0d7c78)}
.gp-del{border:0;background:transparent;cursor:pointer;color:#b91c1c;font-size:1rem;line-height:1;padding:2px 6px}
.gp-empty{padding:10px 2px}
.gp-photos{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.gp-photo{display:flex;flex-direction:column;gap:4px;align-items:flex-start;min-width:110px}
.gp-photo-label{font-size:.7rem;font-weight:700;color:var(--c-muted,#5b8085);text-transform:uppercase;letter-spacing:.03em}
.gp-photo img{width:104px;height:74px;object-fit:cover;border-radius:10px;border:1px solid var(--c-line,#cfe3e4);background:#fff}
.gp-photo-btn{border:1px dashed var(--c-line,#cfe3e4);background:#fff;border-radius:9px;padding:5px 10px;
  font-size:.74rem;font-weight:700;cursor:pointer;color:var(--c-ink-soft,#5b8085)}
.gp-photo-btn:hover{border-style:solid;color:var(--c-primary,#0d7c78)}

/* =====================================================================
   TRANG CHU TREN DIEN THOAI - GON LAI, BOT PHAI KEO
   =====================================================================
   Truoc day bon o so lieu xep MOI O MOT DONG, moi o cao gan 120px, chua
   ke bon the danh sach ben duoi de nguyen so dong nhu tren may tinh ->
   mo trang chu ra phai vuot 4-5 man hinh moi het. Nay tren dien thoai:
     - bon o so lieu xep 2 x 2, chu nho lai, o thap hon mot nua
     - bieu do doanh thu thap hon
     - moi the danh sach chi hien 3 dong dau, con lai an sau nut "Xem tat ca"
     - dua "Ca lam cua toi" va "Lich sap toi" len tren cung: di quay ngoai
       hien truong thi hai muc do la thu can nhin dau tien
   ===================================================================== */
@media (max-width:640px){
  /* --- Bon o so lieu: 2 cot --- */
  .dash-stats{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:10px}
  .dash-stats .stat{padding:11px 12px;border-radius:14px}
  .dash-stats .stat::after{width:64px;height:64px;right:-18px;top:-18px}
  .dash-stats .stat-label{font-size:.62rem;letter-spacing:.03em;line-height:1.25}
  .dash-stats .stat-value{font-size:1.32rem;margin-top:2px}
  .dash-stats .stat-value[style]{font-size:1.02rem !important}
  .dash-stats .stat-sub{font-size:.68rem;margin-top:1px;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

  /* --- Bieu do doanh thu thap lai --- */
  .dash-revenue > div[style*="height:170px"]{height:120px !important}

  /* --- Chi hien 3 dong dau moi the, phan con lai xem o trang rieng --- */
  .dash-list > *:nth-child(n+4){display:none}
  .dash-more{display:inline-block;margin-top:8px;font-weight:700}
  .dash-rfq tbody tr:nth-child(n+4){display:none}

  /* --- Thu tu uu tien khi cam dien thoai --- */
  .dash-lists{display:flex;flex-direction:column;gap:12px}
  .dash-myjobs{order:1}
  .dash-upcoming{order:2}
  .dash-tasks{order:3}
  .dash-rfq{order:4}
  .dash-charts{gap:12px}
  .dash-card{padding:14px}
  .dash-card .card-head h3{font-size:.98rem}
  .dash-pipeline tbody tr:nth-child(n+5){display:none}

  /* Dau trang gon lai: man hinh dien thoai khong con cho cho mot dong
     tieu de co 2 dong va mot dong mo ta dai. */
  .page-head{gap:8px;margin-bottom:12px}
  .page-head h1{font-size:1.12rem;line-height:1.3}
  .page-head .sub{font-size:.75rem;line-height:1.35;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
}
.dash-more{display:none}

/* --- Chon thiet bi theo chu so huu (bien ban vao cong) --- */
.gp-picker{border:1px dashed var(--c-line,#cfe3e4);border-radius:14px;padding:12px;background:rgba(255,255,255,.5)}
.gp-owner-items{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.gp-chip{display:inline-flex;align-items:center;gap:8px;max-width:100%;
  border:1px solid var(--c-line,#cfe3e4);background:#fff;border-radius:12px;padding:6px 10px 6px 6px;
  cursor:pointer;font:inherit;text-align:left;color:var(--c-ink,#12262a)}
.gp-chip img{width:34px;height:26px;object-fit:cover;border-radius:7px;flex:0 0 auto}
.gp-chip span{display:flex;flex-direction:column;line-height:1.2;font-size:.84rem;font-weight:600;min-width:0}
.gp-chip small{font-size:.66rem;font-weight:500;color:var(--c-muted,#5b8085)}
.gp-chip b{color:var(--c-primary,#0d7c78);font-size:1rem}
.gp-chip:hover{border-color:var(--c-primary,#0d7c78);box-shadow:0 3px 10px rgba(13,124,120,.12)}
.gp-chip.da-them{opacity:.55}
.gp-chip.da-them b::after{content:"✓";margin-left:2px}

/* =====================================================================
   CHE DO NHAP LIEU GON (to khai thiet bi vao cong, hop thiet bi ca nhan)
   =====================================================================
   Man hinh nay co rat nhieu o nhap. De khoang cach mac dinh (15px moi o)
   thi phai vuot rat nhieu moi den o tiep theo, nhap mot to khai 20 dong
   thiet bi la met. O day bop lai con gan mot nua.
   LUU Y: tren dien thoai VAN giu co chu 16px - nho hon la iOS tu dong
   phong to trang moi khi bam vao o nhap. Chi may tinh moi giam co chu.
   ===================================================================== */
.form-tight .field{margin-bottom:8px}
.form-tight .field label,.form-tight .label{margin-bottom:3px;font-size:.76rem}
.form-tight .grid{gap:8px 12px}
.form-tight input[type=text],.form-tight input[type=email],.form-tight input[type=number],
.form-tight input[type=tel],.form-tight input[type=date],.form-tight input[type=time],
.form-tight select,.form-tight textarea{padding:8px 11px}
.form-tight textarea{min-height:62px;line-height:1.45}
.form-tight h3{margin-bottom:8px}
.form-tight h4{margin-bottom:5px;margin-top:12px}
.form-tight .help{margin-bottom:8px}
.form-tight .gp-row{padding:10px 12px;margin-bottom:9px}
.form-tight .gp-row-head{margin-bottom:3px}
.form-tight .card{padding:14px 16px}
@media (min-width:641px){
  .form-tight input[type=text],.form-tight input[type=email],.form-tight input[type=number],
  .form-tight input[type=tel],.form-tight input[type=date],.form-tight input[type=time],
  .form-tight select,.form-tight textarea{font-size:14.5px}
}

/* --- Xem truoc dau trang chung tu (Cau hinh > Chung tu & chu ky) --- */
.lh-preview{border:1px solid var(--c-line,#cfe3e4);border-radius:12px;padding:12px 14px;
  background:#fff;margin-bottom:14px}
.lh-label{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;
  color:var(--c-muted,#5b8085);margin-bottom:6px}
.lh-name{font-weight:800;color:var(--c-primary,#0d7c78);font-size:1rem;line-height:1.25}
.lh-name-en{font-style:italic;color:var(--c-muted,#5b8085);font-size:.76rem;margin-bottom:3px}
.lh-line{font-size:.76rem;color:var(--c-ink,#12262a);line-height:1.45}
.lh-rule{height:2px;background:var(--c-primary,#0d7c78);margin-top:8px;border-radius:2px}

/* Khoi "lam song song" trong so do quy trinh nghiep vu.
   Nam loai giay to xep thanh luoi 2 cot de ca so do van vua mot man hinh,
   thay vi keo dai ra ngoai le phai. */
.wf-song{flex:0 0 auto;border:2px dashed rgba(62,201,193,.55);border-radius:14px;
  padding:10px 12px;background:rgba(62,201,193,.06);align-self:center}
.wf-song-title{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;
  color:var(--c-muted);margin-bottom:8px;max-width:320px;line-height:1.35}
.wf-song-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.wf-node-sm{flex:0 0 auto;min-width:0;padding:8px 10px;flex-direction:row;align-items:center;gap:7px}
.wf-node-sm .wf-ico{font-size:1rem}
.wf-node-sm .wf-name{font-size:.8rem}
@media (max-width:900px){
  .wf-song-list{grid-template-columns:1fr}
}

/* Bo cuc hai cot "danh sach ben trai - noi dung ben phai" (xuat ho so,
   lich su lam viec). Man hinh hep thi xep chong len nhau, khong tran ngang. */
.hai-cot{display:grid;grid-template-columns:minmax(300px,380px) 1fr;gap:16px;align-items:start}
@media (max-width:900px){
  .hai-cot{grid-template-columns:1fr}
}
