@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&display=swap');

/* TVN FIX85 — Grid Paper + Green/Orange/Yellow/Pink
   Visual-only theme. No data, RPC, navigation or permission logic is changed. */
:root{
  --tvn-green:#1f6b3a;
  --tvn-green-deep:#124829;
  --tvn-green-soft:#eef7f0;
  --tvn-orange:#f28c28;
  --tvn-orange-soft:#fff0df;
  --tvn-yellow:#ffc72c;
  --tvn-yellow-soft:#fff8d9;
  --tvn-pink:#f38aa2;
  --tvn-pink-soft:#fff0f4;
  --tvn-red:#e54836;
  --tvn-paper:#ffffff;
  --tvn-grid:#e8ece8;
  --tvn-ink:#101410;
  --tvn-muted:#626862;
  --tvn-line:#111711;
  --tvn-soft-line:#dfe5df;
  --tvn-shadow:4px 5px 0 rgba(16,20,16,.10);
}

html,body,button,input,select,textarea,table,th,td{
  font-family:"Be Vietnam Pro",system-ui,-apple-system,"Segoe UI",Arial,sans-serif!important;
}
html{background:#fff!important}
body{
  color:var(--tvn-ink)!important;
  background-color:#fff!important;
  background-image:
    linear-gradient(var(--tvn-grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--tvn-grid) 1px,transparent 1px)!important;
  background-size:30px 30px!important;
  background-attachment:fixed!important;
}

/* Keep layout intact; only visual skinning */
.wrap,main.wrap,.container,.page,.page-wrap,.shell{position:relative}

/* Main page headers */
.top,.hero,.header-card,.page-head{
  background:#fff!important;
  border:2px solid var(--tvn-ink)!important;
  border-radius:24px!important;
  box-shadow:var(--tvn-shadow)!important;
  padding:22px 24px!important;
}
.brand,.eyebrow,.kicker{
  color:var(--tvn-green-deep)!important;
  font-weight:800!important;
  letter-spacing:.045em!important;
  text-transform:uppercase;
}
.title,h1{
  color:var(--tvn-green-deep)!important;
  font-weight:800!important;
  letter-spacing:-.035em!important;
}
.section-title,h2,h3{color:var(--tvn-green-deep)!important;font-weight:800!important}
.sub,.mut,.muted,.hint,small{color:var(--tvn-muted)!important}

/* Cards: white, crisp black/green structure */
.card,.tile,.item,.lesson,.panel,.box,.result-card,.student-card,.class-card,.quiz-card,.homework-card,.stat-card{
  background:#fff!important;
  border:1.7px solid #b9cbbd!important;
  border-radius:18px!important;
  box-shadow:0 3px 0 rgba(31,107,58,.07)!important;
}
.tile:hover,.item:hover,.class-card:hover,.student-card:hover{
  border-color:var(--tvn-green)!important;
  box-shadow:0 4px 0 rgba(31,107,58,.10)!important;
}

/* Buttons: black outlines + balanced study-note colors */
.btn,button:not(.plain):not(.icon-only),a.btn,input[type="button"],input[type="submit"]{
  border:2px solid var(--tvn-ink)!important;
  border-radius:13px!important;
  background:#fff!important;
  color:var(--tvn-ink)!important;
  font-weight:800!important;
  box-shadow:3px 4px 0 rgba(16,20,16,.11)!important;
  transition:transform .12s ease,box-shadow .12s ease,background .12s ease!important;
}
.btn:hover,button:not(.plain):not(.icon-only):hover,a.btn:hover,input[type="button"]:hover,input[type="submit"]:hover{
  transform:translate(-1px,-1px);
  box-shadow:4px 5px 0 rgba(16,20,16,.14)!important;
}
.btn.primary,button.primary,.primary.btn,input[type="submit"]{
  background:var(--tvn-green)!important;
  color:#fff!important;
  border-color:var(--tvn-ink)!important;
}
.btn.secondary,button.secondary,.secondary.btn{
  background:var(--tvn-yellow)!important;
  color:var(--tvn-ink)!important;
  border-color:var(--tvn-ink)!important;
}
.btn.warn,button.warn,.warn.btn{
  background:var(--tvn-orange)!important;
  color:#fff!important;
  border-color:var(--tvn-ink)!important;
}
.btn.danger,button.danger,.danger.btn{
  color:var(--tvn-red)!important;
  background:var(--tvn-pink-soft)!important;
  border-color:var(--tvn-red)!important;
}

/* Form controls */
input:not([type="checkbox"]):not([type="radio"]),select,textarea{
  background:#fff!important;
  color:var(--tvn-ink)!important;
  border:1.7px solid #9fb4a3!important;
  border-radius:13px!important;
  box-shadow:none!important;
}
input:focus,select:focus,textarea:focus{
  border-color:var(--tvn-green)!important;
  outline:none!important;
  box-shadow:0 0 0 3px rgba(31,107,58,.11)!important;
}
label{font-weight:700}

/* Tags / pills distribute the palette without washing the page */
.pill,.badge,.tag,.chip{
  background:var(--tvn-yellow-soft)!important;
  color:var(--tvn-green-deep)!important;
  border:1.5px solid var(--tvn-orange)!important;
  font-weight:800!important;
}
.pill:nth-of-type(3n),.badge:nth-of-type(3n),.tag:nth-of-type(3n),.chip:nth-of-type(3n){
  background:var(--tvn-pink-soft)!important;
  border-color:var(--tvn-pink)!important;
}
.ok,.success{
  background:var(--tvn-green-soft)!important;
  color:var(--tvn-green-deep)!important;
  border-color:#9bc8a8!important;
}
.note,.warn,.warning{
  background:var(--tvn-yellow-soft)!important;
  color:#6b4d00!important;
  border-color:var(--tvn-yellow)!important;
}
.err,.error{color:var(--tvn-red)!important}

/* Tables */
table{background:#fff!important;border-color:var(--tvn-line)!important}
th{
  background:var(--tvn-green-deep)!important;
  color:#fff!important;
  font-weight:800!important;
}
td,th{border-color:#dfe5df!important}
tbody tr:nth-child(even) td{background:#fffaf0!important}

/* Progress / metrics */
.progress{background:#eef2ee!important}
.progress>span{background:linear-gradient(90deg,var(--tvn-yellow),var(--tvn-orange))!important}
.count{color:var(--tvn-green-deep)!important}
hr{border-color:#dfe5df!important}

/* Dialogs / modals */
dialog,.modal,.popup,.sheet{
  background:#fff!important;
  color:var(--tvn-ink)!important;
  border:2px solid var(--tvn-ink)!important;
  border-radius:22px!important;
  box-shadow:8px 10px 0 rgba(16,20,16,.14)!important;
}

/* Common navs: stronger black-outline stationery feel */
nav a,.nav a,.tabs a,.tabs button,.topnav a,.menu a{
  font-weight:800!important;
}

/* Preserve simple graph-paper look: remove decorative pseudo-shapes from this theme layer */
body::before,body::after{display:none!important;content:none!important}

*{scrollbar-color:#7ea786 #f5f7f5;scrollbar-width:thin}

@media(max-width:680px){
  body{background-size:24px 24px!important}
  .top,.hero,.header-card,.page-head{padding:17px 16px!important;border-radius:20px!important}
  .card{border-radius:16px!important}
  .btn,button:not(.plain):not(.icon-only),a.btn{box-shadow:2px 3px 0 rgba(16,20,16,.10)!important}
}

/* ==========================================================
   TVN FIX86 — richer palette, grid-paper only
   Visual layer only: no RPC / data / permission / navigation logic.
   ========================================================== */
:root{
  --tvn-cream:#fffaf0;
  --tvn-cream-2:#fff6df;
  --tvn-yellow-strong:#ffc533;
  --tvn-orange-strong:#ff8a19;
  --tvn-pink-strong:#ef5b7b;
  --tvn-pink-card:#fff0f4;
  --tvn-green-card:#eef8f0;
  --tvn-yellow-card:#fff8df;
  --tvn-orange-card:#fff1e3;
}

/* paper remains only white graph paper — no decorative overlays */
html,body{background-color:#fff!important}
body{
  background-image:
    linear-gradient(#e4ebe7 1px,transparent 1px),
    linear-gradient(90deg,#e4ebe7 1px,transparent 1px)!important;
  background-size:30px 30px!important;
}
body::before,body::after{content:none!important;display:none!important}

/* General surfaces: warm, not sterile */
.top,.hero,.header-card,.page-head{
  background:linear-gradient(135deg,#fffdf8 0%,#fff8e8 100%)!important;
}
.card,.tile,.item,.lesson,.panel,.box,.result-card,.student-card,.class-card,.quiz-card,.homework-card,.stat-card{
  background:#fffefa!important;
}

/* Stronger neutral buttons and colorful states */
.btn:not(.primary):not(.secondary):not(.warn):not(.danger),
button:not(.primary):not(.secondary):not(.warn):not(.danger):not(.plain):not(.icon-only),
a.btn:not(.primary):not(.secondary):not(.warn):not(.danger){
  background:var(--tvn-yellow-card)!important;
  border-color:#111!important;
}
.btn.primary,button.primary,.primary.btn{background:var(--tvn-green)!important;color:#fff!important}
.btn.secondary,button.secondary,.secondary.btn{background:var(--tvn-yellow-strong)!important;color:#111!important}
.btn.warn,button.warn,.warn.btn{background:var(--tvn-orange-strong)!important;color:#111!important}
.btn.danger,button.danger,.danger.btn{background:var(--tvn-pink-card)!important;color:#d93629!important;border-color:#e54836!important}

/* ===== ADMIN HOME / HÔM NAY ===== */
body main.wrap > .top{
  background:linear-gradient(120deg,#fffaf0,#fffdf9)!important;
  border-color:#111!important;
}
body main.wrap > .top .title{
  display:inline-block;
  background:linear-gradient(180deg,#ffd96b,#ffc533)!important;
  color:#121212!important;
  border-radius:14px;
  padding:2px 12px 6px;
  margin-top:4px!important;
}
#todoSection{
  background:linear-gradient(135deg,#f5fbf6 0%,#fffefa 72%)!important;
  border:2px solid #111!important;
}
#todoSection .section-title{color:#111!important;position:relative;padding-left:20px}
#todoSection .section-title::before{
  content:"";position:absolute;left:0;top:2px;bottom:2px;width:7px;border-radius:99px;background:var(--tvn-green);
}
#todo.todo{gap:12px!important}
#todo.todo > a{
  border:2px solid #111!important;
  border-radius:18px!important;
  box-shadow:3px 4px 0 rgba(16,20,16,.09)!important;
  min-height:92px;
  position:relative;
  overflow:hidden;
}
#todo.todo > a:nth-child(1){background:linear-gradient(135deg,#fff0f4,#fff8fa)!important;border-color:#ed5575!important}
#todo.todo > a:nth-child(2){background:linear-gradient(135deg,#fff8df,#fffdf4)!important;border-color:#f29b15!important}
#todo.todo > a:nth-child(3){background:linear-gradient(135deg,#eef8f0,#fbfffc)!important;border-color:#2d7449!important}
#todo.todo > a:nth-child(4){background:linear-gradient(135deg,#fff1e3,#fff9f2)!important;border-color:#f28c28!important}
#todo.todo > a:nth-child(1) .count{color:#c91f4f!important}
#todo.todo > a:nth-child(2) .count{color:#a64e00!important}
#todo.todo > a:nth-child(3) .count{color:#17643a!important}
#todo.todo > a:nth-child(4) .count{color:#d76710!important}
#todo.todo > a strong{color:#111!important;font-weight:800!important}

main.wrap > section.card:nth-of-type(2){
  background:linear-gradient(135deg,#fff9e9,#fffdf6)!important;
  border:2px solid #111!important;
}
main.wrap > section.card:nth-of-type(2) .section-title{color:#111!important}
main.wrap > section.card:nth-of-type(2) #toggleHistory{background:var(--tvn-yellow-strong)!important;color:#111!important}

main.wrap > section.card:nth-of-type(3){background:linear-gradient(135deg,#f2f9f3,#fff)!important;border:2px solid #111!important}
main.wrap > section.card:nth-of-type(4){background:linear-gradient(135deg,#fff3e8,#fff)!important;border:2px solid #111!important}

/* ===== PUBLIC LANDING / INDEX ===== */
body main.wrap > .hero{
  background:linear-gradient(120deg,#fffaf0 0%,#fffdf8 100%)!important;
  border:2px solid #111!important;
  box-shadow:5px 6px 0 rgba(16,20,16,.10)!important;
}
body main.wrap > .hero .name{color:var(--tvn-green-deep)!important}
body main.wrap > .hero .logo{background:#fff!important;border-color:var(--tvn-green)!important}
body main.wrap > .panel{
  background:linear-gradient(135deg,#f6fbf6,#fffefa)!important;
  border:2px solid #111!important;
  box-shadow:4px 5px 0 rgba(16,20,16,.08)!important;
}
body main.wrap > .panel .panel-head h1{color:#111!important;position:relative;padding-left:18px}
body main.wrap > .panel .panel-head h1::before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:7px;border-radius:99px;background:var(--tvn-green)}
body main.wrap > .panel .badge{background:var(--tvn-yellow-card)!important;border:1.7px solid var(--tvn-orange-strong)!important;color:var(--tvn-green-deep)!important}
body main.wrap > .panel .grid > .card{
  border:2px solid #111!important;
  box-shadow:3px 4px 0 rgba(16,20,16,.07)!important;
}
body main.wrap > .panel .grid > .card:nth-child(1){background:linear-gradient(135deg,#fff0f4,#fff9fb)!important;border-color:#ed5575!important}
body main.wrap > .panel .grid > .card:nth-child(2){background:linear-gradient(135deg,#fff8df,#fffdf6)!important;border-color:#f29b15!important}
body main.wrap > .panel .grid > .card:nth-child(3){background:linear-gradient(135deg,#eef8f0,#fbfffc)!important;border-color:#2d7449!important}
body main.wrap > .panel .grid > .card:nth-child(4){background:linear-gradient(135deg,#fff1e3,#fffaf4)!important;border-color:#f28c28!important}
body main.wrap > .panel .grid > .card:nth-child(1) .icon{background:#ffd9e2!important;color:#b91846!important}
body main.wrap > .panel .grid > .card:nth-child(2) .icon{background:#ffe9a8!important;color:#b86700!important}
body main.wrap > .panel .grid > .card:nth-child(3) .icon{background:#dff1e3!important;color:#17643a!important}
body main.wrap > .panel .grid > .card:nth-child(4) .icon{background:#ffe0bf!important;color:#c55b00!important}
body main.wrap > .panel .grid > .card h2{color:var(--tvn-green-deep)!important}
body main.wrap > .panel .public-area .recruit{background:linear-gradient(135deg,#fff7dc,#fffdf4)!important;border:2px solid #f29b15!important}

/* Common status cards can carry gentle color instead of all-white */
.stat-card:nth-child(4n+1),.tile:nth-child(4n+1){background:var(--tvn-pink-card)!important}
.stat-card:nth-child(4n+2),.tile:nth-child(4n+2){background:var(--tvn-yellow-card)!important}
.stat-card:nth-child(4n+3),.tile:nth-child(4n+3){background:var(--tvn-green-card)!important}
.stat-card:nth-child(4n),.tile:nth-child(4n){background:var(--tvn-orange-card)!important}

@media(max-width:680px){
  #todo.todo > a{min-height:78px}
}

/* ==========================================================
   TVN FIX87 — calmer black / green / yellow system
   Keeps FIX86 layout; removes the multi-colour card treatment.
   ========================================================== */
:root{
  --tvn-green:#23633b;
  --tvn-green-deep:#173f29;
  --tvn-yellow-strong:#f3c94f;
  --tvn-yellow-card:#fff7cf;
  --tvn-paper:#fff;
  --tvn-ink:#111;
}
.top,.hero,.header-card,.page-head,
.card,.tile,.item,.lesson,.panel,.box,.result-card,.student-card,.class-card,.quiz-card,.homework-card,.stat-card{
  background:#fff!important;
}
.top,.hero,.header-card,.page-head{border:2px solid #111!important}
.card,.tile,.item,.lesson,.panel,.box,.result-card,.student-card,.class-card,.quiz-card,.homework-card,.stat-card{
  border:1.7px solid #111!important;
  box-shadow:3px 4px 0 rgba(17,17,17,.07)!important;
}
.title,h1,.section-title,h2,h3{color:#111!important}
strong,b{color:#111}
.btn:not(.primary):not(.danger):not(.warn),
button:not(.primary):not(.danger):not(.warn):not(.plain):not(.icon-only),
a.btn:not(.primary):not(.danger):not(.warn){background:#fff!important;color:#111!important;border-color:#111!important}
.btn.primary,button.primary,.primary.btn{background:var(--tvn-green)!important;color:#fff!important;border-color:#111!important}
.btn.secondary,button.secondary,.secondary.btn{background:var(--tvn-yellow-strong)!important;color:#111!important;border-color:#111!important}
.pill,.badge,.tag,.chip{background:var(--tvn-yellow-card)!important;color:#111!important;border-color:#111!important}
th{background:var(--tvn-green-deep)!important;color:#fff!important}
tbody tr:nth-child(even) td{background:#fafafa!important}

/* Admin Hôm nay: white cards, only green/yellow accents */
body main.wrap > .top{background:#fff!important}
body main.wrap > .top .title{background:var(--tvn-yellow-strong)!important;color:#111!important}
#todoSection,main.wrap > section.card:nth-of-type(2),main.wrap > section.card:nth-of-type(3),main.wrap > section.card:nth-of-type(4){background:#fff!important;border:2px solid #111!important}
#todo.todo > a,#todo.todo > a:nth-child(1),#todo.todo > a:nth-child(2),#todo.todo > a:nth-child(3),#todo.todo > a:nth-child(4){background:#fff!important;border:2px solid #111!important}
#todo.todo > a:nth-child(2n){background:var(--tvn-yellow-card)!important}
#todo.todo > a .count,#todo.todo > a:nth-child(1) .count,#todo.todo > a:nth-child(2) .count,#todo.todo > a:nth-child(3) .count,#todo.todo > a:nth-child(4) .count{color:var(--tvn-green-deep)!important}

/* Public HOME: same system, no logo/monogram decoration */
body main.wrap > .hero{background:#fff!important;border:2px solid #111!important}
body main.wrap > .hero .logo{display:none!important}
body main.wrap > .panel{background:#fff!important;border:2px solid #111!important}
body main.wrap > .panel .grid > .card,
body main.wrap > .panel .grid > .card:nth-child(1),
body main.wrap > .panel .grid > .card:nth-child(2),
body main.wrap > .panel .grid > .card:nth-child(3),
body main.wrap > .panel .grid > .card:nth-child(4),
body main.wrap > .panel .public-area .recruit{background:#fff!important;border:2px solid #111!important}
body main.wrap > .panel .grid > .card:nth-child(2n){background:var(--tvn-yellow-card)!important}
body main.wrap > .panel .grid > .card .icon,
body main.wrap > .panel .grid > .card:nth-child(1) .icon,
body main.wrap > .panel .grid > .card:nth-child(2) .icon,
body main.wrap > .panel .grid > .card:nth-child(3) .icon,
body main.wrap > .panel .grid > .card:nth-child(4) .icon{background:#edf6ef!important;color:var(--tvn-green-deep)!important;border:1.5px solid #111!important}
body main.wrap > .panel .grid > .card h2{color:#111!important}
body main.wrap > .panel .badge{background:var(--tvn-yellow-card)!important;border-color:#111!important;color:#111!important}

/* Cancel FIX86 automatic rainbow tiles */
.stat-card:nth-child(4n+1),.tile:nth-child(4n+1),
.stat-card:nth-child(4n+2),.tile:nth-child(4n+2),
.stat-card:nth-child(4n+3),.tile:nth-child(4n+3),
.stat-card:nth-child(4n),.tile:nth-child(4n){background:#fff!important}

/* ==========================================================
   TVN FIX89 — SOFT PREMIUM GREEN / BUTTER YELLOW
   Visual only. No decorative books/flowers/plants. Functional UI only.
   Vietnamese text stays real HTML text; no text baked into images.
   ========================================================== */
:root{
  --tvn-green:#226343;
  --tvn-green-deep:#0f4a31;
  --tvn-green-mid:#3d805d;
  --tvn-green-soft:#e6f3e9;
  --tvn-green-soft-2:#f1f8f2;
  --tvn-yellow-strong:#f5c84b;
  --tvn-yellow-mid:#ffd96f;
  --tvn-yellow-card:#fff3bd;
  --tvn-cream:#fffaf0;
  --tvn-cream-2:#fff6df;
  --tvn-ink:#111713;
  --tvn-muted:#59635c;
  --tvn-grid:#e7ece8;
  --tvn-shadow:4px 5px 0 rgba(17,23,19,.10);
}
html,body,button,input,select,textarea,table,th,td{
  font-family:"Be Vietnam Pro","Segoe UI",Arial,sans-serif!important;
  font-synthesis:none;
  text-rendering:optimizeLegibility;
}
body{
  color:var(--tvn-ink)!important;
  background-color:#fffdf8!important;
  background-image:
    linear-gradient(var(--tvn-grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--tvn-grid) 1px,transparent 1px)!important;
  background-size:30px 30px!important;
}
/* richer page headers without decorative illustration */
.top,.hero,.header-card,.page-head{
  background:linear-gradient(135deg,#fffdf8 0%,#fff8e8 100%)!important;
  border:2px solid var(--tvn-ink)!important;
  box-shadow:5px 6px 0 rgba(17,23,19,.10)!important;
}
.brand,.eyebrow,.kicker{color:var(--tvn-green-deep)!important;font-weight:900!important}
.title,h1{color:var(--tvn-ink)!important;font-weight:900!important}
.section-title,h2,h3{color:var(--tvn-ink)!important;font-weight:850!important}
.sub,.mut,.muted,.hint,small{color:var(--tvn-muted)!important}
/* warm surfaces; no rainbow/no decorative artwork */
.card,.panel,.box,.result-card,.student-card,.class-card,.quiz-card,.homework-card,.stat-card{
  background:#fffefa!important;
  border:2px solid var(--tvn-ink)!important;
  box-shadow:3px 4px 0 rgba(17,23,19,.075)!important;
}
.tile,.item,.lesson{
  background:linear-gradient(135deg,#ffffff,#fffdf7)!important;
  border:1.8px solid var(--tvn-ink)!important;
  box-shadow:2px 3px 0 rgba(17,23,19,.065)!important;
}
.tile:nth-child(even),.stat-card:nth-child(even){background:linear-gradient(135deg,var(--tvn-yellow-card),#fffaf0)!important}
/* buttons */
.btn:not(.primary):not(.danger):not(.warn),button:not(.primary):not(.danger):not(.warn):not(.plain):not(.icon-only),a.btn:not(.primary):not(.danger):not(.warn){
  background:#fff9e8!important;color:var(--tvn-ink)!important;border:2px solid var(--tvn-ink)!important;
}
.btn.primary,button.primary,.primary.btn{background:var(--tvn-green)!important;color:#fff!important;border:2px solid var(--tvn-ink)!important}
.btn.secondary,button.secondary,.secondary.btn{background:var(--tvn-yellow-strong)!important;color:var(--tvn-ink)!important;border:2px solid var(--tvn-ink)!important}
.btn:hover,button:not(.plain):not(.icon-only):hover,a.btn:hover{transform:translate(-1px,-1px);box-shadow:4px 5px 0 rgba(17,23,19,.13)!important}
/* nav feels more intentional */
nav a,.nav a,.tabs a,.tabs button,.topnav a,.menu a{font-weight:850!important}
.tabs .active,.tab.active{background:var(--tvn-green)!important;color:#fff!important;border-color:var(--tvn-ink)!important}
/* badges and functional indicators only */
.pill,.badge,.tag,.chip{background:var(--tvn-yellow-card)!important;color:var(--tvn-ink)!important;border:1.6px solid var(--tvn-ink)!important}
.ok,.success{background:var(--tvn-green-soft)!important;color:var(--tvn-green-deep)!important;border-color:#87b697!important}
.note,.warning{background:#fff3c7!important;color:#493700!important;border:1.6px solid #cfa62b!important}
/* inputs */
input:not([type="checkbox"]):not([type="radio"]),select,textarea{background:#fff!important;border:1.7px solid #708879!important;color:var(--tvn-ink)!important}
input:focus,select:focus,textarea:focus{border-color:var(--tvn-green)!important;box-shadow:0 0 0 3px rgba(34,99,67,.13)!important}
/* data tables */
th{background:var(--tvn-green-deep)!important;color:#fff!important}
tbody tr:nth-child(even) td{background:#fff9e9!important}
/* HÔM NAY dashboard hierarchy */
body main.wrap > .top{background:linear-gradient(125deg,#fffdf7,#fff5d8)!important}
body main.wrap > .top .title{background:linear-gradient(180deg,#ffdc73,#f5c84b)!important;color:#111!important;border-radius:16px;padding:3px 14px 7px!important}
#todoSection{background:linear-gradient(135deg,#f0f8f2,#fffefa 66%)!important;border:2px solid var(--tvn-ink)!important}
#todoSection .section-title{color:var(--tvn-ink)!important}
#todoSection .section-title::before{background:var(--tvn-green)!important}
#todo.todo > a,#todo.todo > a:nth-child(1),#todo.todo > a:nth-child(2),#todo.todo > a:nth-child(3),#todo.todo > a:nth-child(4){border:2px solid var(--tvn-ink)!important;min-height:98px!important}
#todo.todo > a:nth-child(1){background:linear-gradient(135deg,#e7f4ea,#f8fcf8)!important}
#todo.todo > a:nth-child(2){background:linear-gradient(135deg,#fff0ae,#fff8dc)!important}
#todo.todo > a:nth-child(3){background:linear-gradient(135deg,#fff8e8,#fffdf8)!important}
#todo.todo > a:nth-child(4){background:linear-gradient(135deg,#eaf5ec,#fff)!important}
#todo.todo > a .count{color:var(--tvn-green-deep)!important;font-size:1.45em!important;font-weight:900!important}
#todo.todo > a strong{color:#111!important;font-weight:900!important}
main.wrap > section.card:nth-of-type(2){background:linear-gradient(135deg,#fff7d6,#fffdf7)!important}
main.wrap > section.card:nth-of-type(3){background:linear-gradient(135deg,#eef7f0,#fffdf8)!important}
main.wrap > section.card:nth-of-type(4){background:#fffefa!important}
/* prevent decorative pseudo art from theme */
body::before,body::after,.card::before,.card::after,.top::before,.top::after,.hero::before,.hero::after{content:none!important}
@media(max-width:680px){
  body{background-size:24px 24px!important}
  #todo.todo > a{min-height:84px!important}
}

/* ==========================================================
   TVN FIX90 — deep green + soft premium + typography refresh
   Visual only. No RPC/data/permission changes.
   ========================================================== */
@import url('https://fonts.googleapis.com/css2?family=Nunito+Sans:opsz,wght@6..12,400;6..12,500;6..12,600;6..12,700;6..12,800;6..12,900&family=Be+Vietnam+Pro:wght@400;500;600;700;800&display=swap');
:root{
  --tvn-green:#151515;
  --tvn-green-deep:#151515;
  --tvn-green-darker:#151515;
  --tvn-green-soft:#e8f3ec;
  --tvn-yellow:#f4cc5e;
  --tvn-yellow-strong:#f0c84f;
  --tvn-yellow-soft:#fff4c8;
  --tvn-cream:#fffaf0;
  --tvn-paper:#fffefa;
  --tvn-ink:#122019;
  --tvn-muted:#667269;
  --tvn-grid:#e4ebe7;
  --tvn-line:#173426;
}
html,body,button,input,select,textarea,table,th,td{
  font-family:"Nunito Sans","Be Vietnam Pro","Segoe UI",Arial,sans-serif!important;
}
body{color:var(--tvn-ink)!important}
.brand,.eyebrow,.kicker{color:var(--tvn-green-deep)!important;font-weight:900!important}
.title,h1,.section-title,h2,h3{letter-spacing:-.025em!important}
.title,h1{color:var(--tvn-green-deep)!important;font-weight:900!important}
.section-title,h2,h3{color:var(--tvn-ink)!important;font-weight:900!important}
.sub,.mut,.muted,.hint,small{color:var(--tvn-muted)!important;font-weight:550!important}

/* HOME hero */
body main.wrap > .top{
  background:linear-gradient(135deg,#fffdf8 0%,#fff8e8 100%)!important;
  border:2px solid var(--tvn-green-deep)!important;
  box-shadow:5px 6px 0 rgba(13,75,52,.11)!important;
}
body main.wrap > .top .brand{font-size:18px!important;letter-spacing:.045em!important}
body main.wrap > .top .title{
  background:linear-gradient(180deg,#ffe69a,#f4cc5e)!important;
  color:var(--tvn-green-darker)!important;
  border-radius:14px!important;
  padding:2px 13px 6px!important;
  font-weight:900!important;
  box-shadow:inset 0 -1px 0 rgba(124,87,0,.08)!important;
}

/* HOME cards */
#todoSection,main.wrap > section.card:nth-of-type(2),main.wrap > section.card:nth-of-type(3),main.wrap > section.card:nth-of-type(4){
  border:2px solid var(--tvn-green-deep)!important;
  box-shadow:4px 5px 0 rgba(13,75,52,.09)!important;
}
#todoSection{background:linear-gradient(135deg,#f7fbf8 0%,#fffdfa 100%)!important}
#todoSection .section-title::before{background:var(--tvn-green)!important}
#todo.todo > a{
  display:flex!important;align-items:center!important;gap:13px!important;
  border:1.8px solid #7fa58f!important;
  box-shadow:0 5px 14px rgba(13,75,52,.07)!important;
  padding:15px!important;
}
#todo.todo > a:nth-child(1){background:linear-gradient(135deg,#edf7f0,#fbfffc)!important;border-color:#7eaa8d!important}
#todo.todo > a:nth-child(2){background:linear-gradient(135deg,#fff4cc,#fffaf0)!important;border-color:#d9b44a!important}
#todo.todo > a:nth-child(3){background:linear-gradient(135deg,#fff9e9,#fffdf8)!important;border-color:#c6a95c!important}
#todo.todo > a:nth-child(4){background:linear-gradient(135deg,#eaf5ee,#fbfffc)!important;border-color:#79a88c!important}
#todo.todo > a .count{color:var(--tvn-green-deep)!important;font-size:25px!important;font-weight:900!important;line-height:1!important}
#todo.todo > a strong{color:var(--tvn-ink)!important;font-weight:900!important}
.todoIcon{width:48px;height:48px;border-radius:14px;background:#dceee3;color:var(--tvn-green-deep);display:grid;place-items:center;flex:none}
.todoIcon svg{width:24px;height:24px}.todoCopy{min-width:0}
#todo.todo > a:nth-child(2) .todoIcon,#todo.todo > a:nth-child(3) .todoIcon{background:#ffe8a5}

.lesson{border-color:#9ab3a2!important;background:#fffefa!important}
.lesson strong{font-weight:900!important}

/* Quick actions */
main.wrap > section.card:nth-of-type(4){background:linear-gradient(135deg,#f6faf7,#fffdf8)!important}
main.wrap > section.card:nth-of-type(4) .btn{
  background:#fffefa!important;color:var(--tvn-green-deep)!important;border:1.7px solid #678d77!important;
  box-shadow:0 3px 0 rgba(13,75,52,.09)!important;gap:7px!important;
}
main.wrap > section.card:nth-of-type(4) .btn:hover{background:#edf6f0!important;border-color:var(--tvn-green-deep)!important}

/* General stronger premium green */
.card,.tile,.item,.panel,.box,.result-card,.student-card,.class-card,.quiz-card,.homework-card,.stat-card{
  border-color:#9ab3a2!important;
}
.btn.primary,button.primary,.primary.btn,input[type="submit"]{background:var(--tvn-green-deep)!important}
.pill,.badge,.tag,.chip{color:var(--tvn-green-deep)!important}
th{background:var(--tvn-green-deep)!important}

/* Public landing: calmer, fewer random colors */
body main.wrap > .hero{border-color:var(--tvn-green-deep)!important}
body main.wrap > .panel{border-color:var(--tvn-green-deep)!important;background:linear-gradient(135deg,#fbfdfb,#fffdfa)!important}
body main.wrap > .panel .grid > .card{border:1.8px solid #8eaa98!important;background:#fffefa!important}
body main.wrap > .panel .grid > .card:nth-child(2),body main.wrap > .panel .grid > .card:nth-child(4){background:linear-gradient(135deg,#fff4c8,#fffaf0)!important;border-color:#d7b353!important}
body main.wrap > .panel .grid > .card:nth-child(1),body main.wrap > .panel .grid > .card:nth-child(3){background:linear-gradient(135deg,#edf6f0,#fffefa)!important;border-color:#7ca38a!important}
body main.wrap > .panel .grid > .card .icon{background:#e2f0e7!important;color:var(--tvn-green-deep)!important}
body main.wrap > .panel .grid > .card:nth-child(2) .icon,body main.wrap > .panel .grid > .card:nth-child(4) .icon{background:#ffe9a8!important;color:var(--tvn-green-deep)!important}
body main.wrap > .panel .public-area .recruit{background:#fffefa!important;border-color:#9ab3a2!important}

@media(max-width:680px){
  #todo.todo > a{padding:13px!important}.todoIcon{width:43px;height:43px;border-radius:13px}.todoIcon svg{width:22px;height:22px}
}

/* FIX100 stronger HOME accents */
:root{--tvn-orange:#e88b45;--tvn-pink:#c9687f}
body main.wrap > .top{background:linear-gradient(125deg,#fffdf6 0%,#fff2bd 100%)!important;border:2px solid var(--tvn-green-deep)!important}
body main.wrap > .top .title{background:linear-gradient(180deg,#f7d15f,#eebc39)!important;color:#0a3f2c!important}
#todo.todo > a:nth-child(1){background:linear-gradient(135deg,#dff1e5,#f8fcf9)!important;border-color:#5d9675!important}
#todo.todo > a:nth-child(2){background:linear-gradient(135deg,#ffe7a0,#fff6d7)!important;border-color:#c79824!important}
#todo.todo > a:nth-child(3){background:linear-gradient(135deg,#ffe4d2,#fff6ef)!important;border-color:#cf8651!important}
#todo.todo > a:nth-child(4){background:linear-gradient(135deg,#f8dfe6,#fff5f8)!important;border-color:#bf7688!important}
#todo.todo > a:nth-child(3) .todoIcon{background:#ffd9c1!important;color:#9b4e1e!important}
#todo.todo > a:nth-child(4) .todoIcon{background:#f3d2dc!important;color:#8e4358!important}
#todo.todo > a .count{font-size:27px!important}
main.wrap > section.card:nth-of-type(2){background:linear-gradient(135deg,#fff7d1,#fffdf6)!important}
main.wrap > section.card:nth-of-type(3){background:linear-gradient(135deg,#e8f5ec,#fffdf8)!important}
main.wrap > section.card:nth-of-type(4){background:linear-gradient(135deg,#fff1e6,#fffdf8)!important}

/* FIX111 FRESH BLACK OUTLINE */
:root{--tvn-black:#161616;--tvn-yellow:#FFD84D;--tvn-orange:#FF9A4A;--tvn-green-fresh:#56CF83;--tvn-pink:#FF86AD;--tvn-paper:#FFFDF7;--tvn-soft:#F8F6EF}
body{background-color:var(--tvn-soft)!important;color:var(--tvn-black)!important}
.card,.tile,.item,.panel,.box,.lesson,.student,.class-card,.student-card,.quiz-card,.homework-card,.stat-card{border:2px solid var(--tvn-black)!important;box-shadow:4px 4px 0 rgba(22,22,22,.12)!important;background:var(--tvn-paper)!important}
body main.wrap>.top{background:linear-gradient(110deg,var(--tvn-yellow) 0 28%,#fff9da 28% 58%,var(--tvn-green-fresh) 58% 100%)!important;border:2.5px solid var(--tvn-black)!important;box-shadow:5px 5px 0 rgba(22,22,22,.16)!important}
body main.wrap>.top .brand,body main.wrap>.top .sub,body main.wrap>.top .title{color:var(--tvn-black)!important}
body main.wrap>.top .title{background:#fff!important;border:2px solid var(--tvn-black)!important;box-shadow:3px 3px 0 rgba(22,22,22,.12)!important}
.section-title,.title,.brand,strong{color:var(--tvn-black)!important}
.btn,button.btn{border:2px solid var(--tvn-black)!important;color:var(--tvn-black)!important;background:#fff!important;box-shadow:2px 2px 0 rgba(22,22,22,.12)!important}
.btn.primary,button.primary,.primary.btn,input[type=submit]{background:var(--tvn-yellow)!important;color:var(--tvn-black)!important;border-color:var(--tvn-black)!important}
.btn.danger,button.danger{background:var(--tvn-pink)!important;color:var(--tvn-black)!important}
.btn:hover,button.btn:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 rgba(22,22,22,.18)!important}
.badge,.pill,.tag,.chip{border:1.5px solid var(--tvn-black)!important;background:var(--tvn-green-fresh)!important;color:var(--tvn-black)!important;font-weight:800!important}
.ok{background:#CFF3D9!important;color:var(--tvn-black)!important;border-color:var(--tvn-black)!important}
.note,.hint{background:#FFF1A8!important;color:var(--tvn-black)!important;border:1.5px solid var(--tvn-black)!important}
input,select,textarea{border:2px solid var(--tvn-black)!important;background:#fff!important;color:var(--tvn-black)!important}
input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px rgba(255,216,77,.4)!important;border-color:var(--tvn-black)!important}
#todo.todo>a{border:2px solid var(--tvn-black)!important;box-shadow:3px 3px 0 rgba(22,22,22,.12)!important}
#todo.todo>a:nth-child(4n+1){background:#FFF0A6!important}#todo.todo>a:nth-child(4n+2){background:#FFD6B8!important}#todo.todo>a:nth-child(4n+3){background:#CDF1D8!important}#todo.todo>a:nth-child(4n+4){background:#FFD5E3!important}
.todoIcon{border:2px solid var(--tvn-black)!important;background:#fff!important;color:var(--tvn-black)!important}
th{background:var(--tvn-black)!important;color:#fff!important}
