:root{
  --ink:#241a2e; --emerald:#6a2c8e; --emerald-dk:#401d5e; --soft:#2c7a5a;
  --gold:#e9772e; --gold-lt:#f4c79c; --champ:#f2eaf8; --paper:#faf8fc;
  --card:#fff; --line:#e7def0; --muted:#7c6e88;
  --kh:#c0392b; --cao:#c77f1a; --thuong:#6f6280;
}
*{box-sizing:border-box;margin:0;padding:0;}
/* ===== Chốt chặn TRÀN KHUNG ngang (overflow-x) trên mọi trang/điện thoại =====
   1 phần tử lỡ rộng hơn màn → KHÔNG kéo lệch cả trang nữa. clip giữ position:sticky/fixed. */
html{overflow-x:hidden;overflow-x:clip;}
img,video{max-width:100%;height:auto;}
svg,canvas{max-width:100%;}
body{
  background:radial-gradient(1100px 520px at 85% -10%,rgba(233,119,46,.10),transparent 60%),
             radial-gradient(820px 460px at -10% 110%,rgba(106,44,142,.10),transparent 60%),var(--paper);
  color:var(--ink);font-family:"Be Vietnam Pro",sans-serif;line-height:1.45;
  -webkit-font-smoothing:antialiased;padding:26px 20px 60px;
}
.wrap{max-width:1280px;margin:0 auto;}

header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px;}
.brand{display:flex;align-items:center;gap:14px;}
.logo{width:50px;height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--emerald),var(--emerald-dk));color:var(--gold-lt);
  font-family:"Cormorant Garamond",serif;font-weight:700;font-size:24px;box-shadow:0 10px 24px -14px rgba(64,29,94,.8);}
h1{font-family:"Cormorant Garamond",serif;color:var(--emerald-dk);font-size:34px;line-height:1;}
.sub{font-size:12px;color:var(--muted);margin-top:3px;}
.header-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.nav{display:flex;gap:8px;}
.nav a{font-size:12px;font-weight:600;text-decoration:none;color:var(--emerald);border:1px solid var(--gold-lt);border-radius:20px;padding:6px 13px;background:#fbf8fd;}
.nav a:hover{background:var(--champ);}
.user-chip{font-size:12px;border-radius:20px;padding:6px 13px;border:1px solid var(--gold-lt);background:#fff;color:var(--emerald-dk);}
.user-chip b{color:var(--emerald);} .user-chip .r{color:var(--gold);font-weight:600;}
.ai-badge{font-size:12px;font-weight:600;border-radius:20px;padding:7px 14px;border:1px solid var(--line);background:#fff;color:var(--muted);}
.ai-badge.on{color:var(--emerald);border-color:var(--gold-lt);background:#fbf8fd;}
.ai-badge.off{color:var(--gold);border-color:var(--gold-lt);background:#fdf9f4;}

.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px;}
.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;}
.stat .k{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;}
.stat .v{font-family:"Cormorant Garamond",serif;font-size:30px;font-weight:700;color:var(--emerald);line-height:1.1;}
.stat .x{font-size:11px;color:var(--muted);}
.stat.alert .v{color:var(--kh);}

.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.filters{display:flex;gap:8px;margin-left:auto;}
select{font-family:inherit;font-size:13px;padding:8px 10px;border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--ink);}
.btn{font-family:inherit;font-size:13px;font-weight:600;border:1px solid var(--line);border-radius:9px;padding:9px 14px;background:#fff;color:var(--ink);cursor:pointer;transition:.15s;}
.btn:hover{border-color:var(--gold-lt);}
.btn.primary{background:linear-gradient(135deg,var(--emerald),var(--emerald-dk));color:#fff;border:none;box-shadow:0 8px 20px -12px rgba(64,29,94,.8);}
.btn.primary:hover{filter:brightness(1.07);}
.btn.ghost{background:transparent;}
.btn.full{width:100%;}
.btn:disabled{opacity:.55;cursor:default;}

.layout{display:grid;grid-template-columns:1fr 340px;gap:18px;align-items:start;}
@media(max-width:900px){.layout{grid-template-columns:1fr;}}

.feed{display:flex;flex-direction:column;gap:13px;}
.empty{color:var(--muted);font-style:italic;padding:28px;text-align:center;background:#fff;border:1px dashed var(--line);border-radius:12px;}

.card{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--thuong);border-radius:12px;padding:14px 16px;box-shadow:0 10px 26px -22px rgba(20,40,30,.6);}
.card.Khẩn{border-left-color:var(--kh);}
.card.Cao{border-left-color:var(--cao);}
.card.Thường{border-left-color:var(--thuong);}
.card.done{opacity:.62;}
.c-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px;}
.pri{font-size:10.5px;font-weight:700;letter-spacing:.04em;border-radius:20px;padding:3px 10px;color:#fff;}
.pri.Khẩn{background:var(--kh);}
.pri.Cao{background:var(--cao);}
.pri.Thường{background:var(--thuong);}
.tag{font-size:11px;font-weight:600;color:var(--gold);background:var(--champ);border-radius:20px;padding:3px 10px;}
.src{font-size:10px;font-weight:600;border-radius:20px;padding:3px 9px;border:1px solid var(--line);color:var(--muted);margin-left:auto;}
.src.ai{color:var(--emerald);border-color:var(--gold-lt);background:#fbf8fd;}
.c-title{font-weight:600;font-size:15px;color:var(--emerald-dk);margin-bottom:8px;}
.c-row{font-size:13px;margin:4px 0;display:flex;gap:7px;}
.c-row .lbl{color:var(--gold);font-weight:600;flex-shrink:0;min-width:64px;}
.owner{font-size:12px;color:var(--muted);margin-top:7px;}
.owner b{color:var(--emerald-dk);}

.draft{margin-top:10px;border:1px dashed var(--gold-lt);background:#fffdf6;border-radius:10px;padding:10px 12px;}
.draft .dh{font-size:10.5px;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.05em;display:flex;justify-content:space-between;align-items:center;gap:8px;}
.draft .dt{font-size:13px;color:var(--ink);margin-top:6px;white-space:pre-wrap;}
.copy{font-size:11px;font-weight:600;border:1px solid var(--gold-lt);background:#fff;color:var(--gold);border-radius:7px;padding:4px 9px;cursor:pointer;}
.copy:hover{background:var(--champ);}

.actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}
.act{font-size:12px;font-weight:600;border-radius:8px;padding:6px 11px;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink);}
.act.ok{border-color:var(--soft);color:var(--soft);}
.act.done{border-color:var(--emerald);color:#fff;background:var(--emerald);}
.act.skip{border-color:var(--line);color:var(--muted);}
.act:hover{filter:brightness(.98);border-color:var(--gold-lt);}
.statuschip{font-size:11px;color:var(--muted);align-self:center;margin-left:auto;}

.assistant{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:15px;position:sticky;top:18px;}
.as-head{font-weight:600;color:var(--emerald-dk);font-size:15px;}
.as-hint{font-size:11.5px;color:var(--muted);margin:6px 0 10px;}
.as-hint em{color:var(--soft);}
textarea{width:100%;font-family:inherit;font-size:13px;padding:9px;border:1px solid var(--line);border-radius:9px;resize:vertical;margin-bottom:9px;}
.as-answer{margin-top:12px;font-size:13px;white-space:pre-wrap;color:var(--ink);border-top:1px dotted var(--line);padding-top:10px;min-height:10px;}
.as-answer:empty{display:none;}
.as-answer .muted{color:var(--muted);font-style:italic;}

footer{margin-top:34px;text-align:center;font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:16px;}
footer b{color:var(--emerald);}

.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--emerald-dk);color:#fff;
  padding:11px 18px;border-radius:10px;font-size:13px;opacity:0;pointer-events:none;transition:.25s;box-shadow:0 14px 30px -14px rgba(0,0,0,.5);z-index:50;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.spin{display:inline-block;width:13px;height:13px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:sp .7s linear infinite;vertical-align:-2px;margin-right:6px;}
@keyframes sp{to{transform:rotate(360deg);}}

/* ===================== Máy tính bảng (iPad ≤ 900px) ===================== */
@media(max-width:900px){
  body{padding:22px 16px 54px;}
  h1{font-size:29px;}
  .layout{grid-template-columns:1fr;}
  .assistant{position:static;}
}

/* ===================== Điện thoại (≤ 680px) ===================== */
@media(max-width:680px){
  body{padding:16px 13px 48px;-webkit-text-size-adjust:100%;}
  h1{font-size:23px;}
  .logo{width:42px;height:42px;font-size:20px;border-radius:12px;}
  header{gap:10px;margin-bottom:16px;}
  .brand{gap:10px;}
  .header-right{gap:7px;}
  .nav{flex-wrap:wrap;}
  .nav a,.user-chip,.ai-badge{font-size:11.5px;padding:5px 10px;}
  .stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:9px;}
  .stat .v{font-size:24px;}
  .toolbar .filters{margin-left:0;width:100%;}
  /* Chống iOS tự phóng to khi chạm vào ô nhập; chặn select/option dài kéo tràn trang */
  input,select,textarea{font-size:16px;max-width:100%;}
  /* Cho cột lưới co lại (min-width:auto mặc định khiến cột phình theo bảng rộng) */
  .layout>*,.layout2>*,.row2>*,.row3>*{min-width:0;}
  .card,.card2{min-width:0;}
  /* Bảng dữ liệu nhiều cột: cuộn ngang gọn trong khung thay vì tràn cả trang */
  table{display:block;width:100%;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;}
}

/* ===== Hộp thoại (modal): canh giữa khi VỪA màn, TỰ CUỘN khi CAO quá màn → luôn chạm được nút đáy.
   Dùng 'html .modal' (specificity cao) để thắng rule .modal khai báo inline trong từng trang (nạp SAU styles.css).
   Chỉ tác động hộp con .box/.modal-box, KHÔNG đụng modal-là-hộp kiểu htrequest, KHÔNG đụng badge .box rời. ===== */
html .modal{overflow-y:auto;}
html .modal>.box,html .modal>.modal-box{margin-top:auto;margin-bottom:auto;}

/* ===== Đính kèm tài liệu (Giao việc & Tin nhắn) ===== */
.atts{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;}
.att{display:inline-flex;align-items:center;gap:5px;max-width:240px;font-size:12px;text-decoration:none;color:var(--emerald-dk);background:var(--champ);border:1px solid var(--gold-lt);border-radius:8px;padding:4px 9px;}
.att:hover{background:#ece0f6;}
.att .afn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;}
.att .asz{color:var(--muted);font-size:10.5px;flex-shrink:0;}
.attpend{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;}
.attchip{display:inline-flex;align-items:center;gap:4px;font-size:12px;background:#f4f1f9;border:1px solid var(--line);border-radius:8px;padding:3px 4px 3px 9px;max-width:220px;}
.attchip .afn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.attchip .asz{color:var(--muted);font-size:10.5px;}
.attchip .x{cursor:pointer;color:var(--kh);font-weight:700;padding:0 4px;line-height:1;}
.attchip.up{opacity:.55;}
