/* =========================================================================
   BẢNG MÀU VÀ GIAO DIỆN THEO BỘ NHẬN DIỆN CỦA TRƯỜNG (đồng nhất với slide và poster)
     xanh đậm  #0D3B9B   — màu chủ đạo (tên trường, tiêu đề, nút chính)
     đỏ        #C8102E   — tên "TRẦN NGUYÊN HÃN", điểm nhấn
     vàng      #D9A441   — đường viền, thanh tiêu đề, nhấn nhẹ
     xanh trời #EAF3FF   — nền; vàng nhạt của tòa nhà #FFF6DF
   Tiêu đề dùng phông có chân (Times New Roman) như slide; nội dung dùng Be Vietnam Pro.
   Nạp CUỐI CÙNG nên ghi đè khaosat.css và admin.css.
   ========================================================================= */
:root, :root:not([data-theme="light"]){
  --brand:#0D3B9B; --brand-2:#0A2E7A; --brand-red:#C8102E; --gold:#D9A441;
  --amber:#D9A441; --accent:#0D3B9B; --accent-soft:#EAF1FC;
  --paper:#F4F8FF; --surface:#fff; --surface-2:#F7FAFF;
  --ink:#1F2A44; --ink-2:#34425F; --muted:#5B6B8C;
  --line:#D5E1F5; --line-strong:#B7C8E6;
  --signal:#C8102E; --signal-soft:#FDECEF;
  --gold-soft:#FFF6DF;
  --serif:"Times New Roman",Times,serif;
  --focus:0 0 0 3px rgba(13,59,155,.22);
}
@media (prefers-color-scheme:dark){:root, :root:not([data-theme="light"]){--brand:#0D3B9B;--accent:#0D3B9B;--paper:#F4F8FF;--ink:#1F2A44}}

body{
  background:
    radial-gradient(900px 420px at 100% -8%, rgba(120,170,235,.22), transparent 62%),
    radial-gradient(700px 420px at -6% 105%, rgba(217,164,65,.14), transparent 58%),
    #F4F8FF;
  color:var(--ink);
}

/* ------------------------------------------------ tiêu đề kiểu slide */
h1,h2,h3,.entry-card h1,.guide-title,.facts .f b,.roles b{font-family:var(--serif)}
h1{color:var(--brand);font-size:26px;font-weight:700;padding-left:20px;position:relative;margin-bottom:18px}
h1::before{display:block;content:"";position:absolute;left:0;top:.2em;bottom:.2em;width:6px;background:var(--gold);box-shadow:9px 0 0 var(--brand);border-radius:1px}
h2{color:var(--brand);font-weight:700;font-size:19px}
.card h2{color:var(--brand)}
.entry-card h1{padding-left:0;text-align:center;font-size:24px}
.entry-card h1::before{display:none}
.lead{color:var(--ink-2)}
a{color:var(--brand)}
code{background:#EAF1FC;color:#0A2E7A}

/* ------------------------------------------------ đầu trang: nền trắng, nhận diện trường */
.top{background:#fff;color:var(--ink);box-shadow:0 2px 10px rgba(13,59,155,.10);border-bottom:3px solid var(--gold)}
.top .wrap{padding-top:10px;padding-bottom:10px}
.brand img{width:54px;height:54px;background:transparent;box-shadow:none;padding:0}
.school-name{gap:1px}
.school-name .l1{font:700 11px/1.2 var(--serif);color:var(--brand);letter-spacing:.07em;text-transform:uppercase}
.school-name .l2{display:block;font:700 21px/1.15 var(--serif);color:var(--brand-red);letter-spacing:.01em;text-transform:uppercase;white-space:nowrap;overflow:visible}
.school-name .l3{display:block;font:500 9.5px/1.3 "Be Vietnam Pro",sans-serif;color:var(--muted);letter-spacing:.2em;text-transform:uppercase}
.top .ver{color:var(--muted)}
.top-admin{color:var(--brand);border-color:var(--line-strong)}
.top button.ghost{background:#fff;color:var(--brand);border-color:var(--line-strong)}

/* ------------------------------------------------ hero: ảnh tòa nhà trường */
.hero{display:block;min-height:0;border-radius:20px;background:#fff;border:1px solid var(--line);box-shadow:0 10px 30px rgba(13,59,155,.12);padding:0}
.hero .photo,.hero::after{display:none}
.hero::before{display:none}
.hero-school{position:relative;border-radius:20px;overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:0 10px 30px rgba(13,59,155,.12);margin-bottom:22px}
.hero-school .bg{display:block;width:100%;height:210px;object-fit:cover;object-position:68% 38%}
.hero-school .txt{position:relative;padding:20px 20px 24px;background:#fff}
.hero-school .pill{display:inline-block;background:var(--gold-soft);color:#7A5410;border:1px solid #F0D58C;font:700 12px/1 var(--serif);letter-spacing:.06em;text-transform:uppercase;padding:7px 12px;border-radius:999px}
.hero-school h2.ttl{font:700 34px/1.12 var(--serif);color:var(--brand);margin:12px 0 0;text-transform:uppercase;letter-spacing:.005em}
.hero-school .sub2{font:700 17px/1.3 var(--serif);color:var(--brand-red);text-transform:uppercase;margin:10px 0 0;letter-spacing:.01em}
.hero-school .dv{display:flex;align-items:center;gap:10px;margin:14px 0 12px}
.hero-school .dv i{height:2px;width:70px;background:var(--brand-red)}
.hero-school .dv b{width:9px;height:9px;background:var(--brand-red);transform:rotate(45deg);display:block}
.hero-school p.d{margin:0;color:var(--ink-2);font-size:14.5px;line-height:1.6;max-width:430px}
.hero-school .hero-cta{background:var(--brand);color:#fff;box-shadow:0 6px 16px rgba(13,59,155,.30);margin-top:18px}
.hero-school .hero-cta:hover{filter:none;background:var(--brand-2)}
@media (min-width:760px){
  .hero-school{min-height:340px}
  .hero-school .bg{position:absolute;inset:0;width:100%;height:100%;object-position:72% 40%}
  .hero-school::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#fff 0%,#fff 38%,rgba(255,255,255,.88) 48%,rgba(255,255,255,0) 72%)}
  .hero-school .txt{position:relative;z-index:2;background:transparent;width:58%;padding:34px 34px 34px 34px;min-height:340px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
  .hero-school h2.ttl{font-size:44px}
}

/* ------------------------------------------------ dải thông tin, thẻ */
.facts .f{border-color:var(--line);border-top:3px solid var(--gold)}
.facts .f i{background:#EAF1FC;color:var(--brand)}
.card,.q-item,.combo,.steps,.guide .g,.roles a{border-color:var(--line)}
.guide .n{color:rgba(217,164,65,.55)}
.guide .ic i{background:var(--brand)}
.pill-soft{background:#EAF1FC;color:var(--brand)}
.disclaimer{background:var(--gold-soft);border-color:#F0D58C;border-left-color:var(--gold);color:#5A4210}
.disclaimer strong{color:#5A4210}
.entry-card{border-top:4px solid var(--gold)}

/* ------------------------------------------------ nút, bước, câu hỏi */
.primary{background:var(--brand);border-color:var(--brand);box-shadow:0 2px 6px rgba(13,59,155,.30)}
.primary:hover{background:var(--brand-2);border-color:var(--brand-2)}
.q-opt:hover{border-color:var(--brand);background:#F5F9FF}
.q-opt:has(input:checked){background:var(--brand);border-color:var(--brand);box-shadow:0 2px 8px rgba(13,59,155,.30)}
.q-num{background:#EAF1FC;color:var(--brand)}
.q-item.answered{border-color:#B7C8E6}
.q-item.answered .q-num{background:var(--brand);color:#fff}
.sticky-bar::before{background:linear-gradient(90deg,var(--brand),var(--gold))}
.steps .s.done .c{background:var(--brand);border-color:var(--brand)}
.steps .s.on .c{border-color:var(--brand);color:var(--brand);box-shadow:0 0 0 4px rgba(13,59,155,.14)}
.steps .s.done::before,.steps .s.on::before{background:var(--brand)}
.steps .s.on .l{color:var(--brand)}
th{background:#EAF1FC;color:var(--brand)}
.rank-badge{background:#EAF1FC;color:var(--brand)}
.combo.rank1{border:2px solid var(--brand)}
.combo.rank1 .rank-badge{background:var(--brand)}
.entry strong,.rel b{color:var(--brand)}

/* ------------------------------------------------ chân trang: dải xanh có sóng và viền vàng */
.bottom{position:relative;margin-top:70px;background:var(--brand);border-top:0;padding-top:26px;color:#E6EEFF}
.bottom::before{content:"";position:absolute;left:0;right:0;top:-34px;height:35px;pointer-events:none;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'><path d='M0 60V30C240 2 480 8 720 28S1200 54 1440 22V60Z' fill='%230D3B9B'/><path d='M0 30C240 2 480 8 720 28S1200 54 1440 22' fill='none' stroke='%23D9A441' stroke-width='3.2'/></svg>") bottom/100% 100% no-repeat}
.bottom .fname{font-family:var(--serif)}
.bottom a.tel{background:var(--gold);color:#1F2A44}

@media (max-width:620px){
  .school-name .l2{font-size:17px}
  .school-name .l1{font-size:10px}
  .school-name .l3{font-size:8.5px;letter-spacing:.16em}
  .brand img{width:46px;height:46px}
  h1{font-size:22px}
  .hero-school h2.ttl{font-size:30px}
}

/* ============================================================ GIAO DIỆN QUẢN TRỊ theo màu trường */
body.admin{--side:#0A2E7A;--amber:#D9A441;--brand:#0D3B9B;--bg:#F4F8FF;--line:#D5E1F5;--ink:#1F2A44;--muted:#5B6B8C;background:#F4F8FF}
body.admin .adm-side{background:linear-gradient(180deg,#0D3B9B 0%,#082763 100%)}
body.admin .adm-brand{border-bottom:1px solid rgba(255,255,255,.14)}
body.admin .adm-brand b{font-family:var(--serif);font-size:16px}
body.admin .adm-brand small{color:#B9CBF0}
body.admin .adm-nav a{color:#DCE6FB}
body.admin .adm-nav a.on{background:rgba(217,164,65,.20)}
body.admin .adm-nav a.on::before{background:var(--gold)}
body.admin .adm-nav a.on svg{color:var(--gold)}
body.admin .adm-side-foot a{color:#B9CBF0}
body.admin .adm-top{border-bottom:3px solid var(--gold);background:#fff}
body.admin h1{color:var(--brand);font-family:var(--serif);font-size:25px;font-weight:700;padding-left:18px}
body.admin h1::before{display:block}
body.admin h2{color:var(--brand);font-family:var(--serif)}
body.admin .primary{background:var(--brand);border-color:var(--brand)}
body.admin .primary:hover{background:var(--brand-2)}
body.admin th{background:#EAF1FC;color:var(--brand)}
body.admin .kpi::before{background:var(--brand)}
body.admin .kpi.amber::before{background:var(--gold)}
body.admin .kpi .k-val{font-family:var(--serif);color:var(--brand)}
body.admin .bar i{background:linear-gradient(90deg,#0D3B9B,#4F82D8)}
body.admin .bar.low i{background:linear-gradient(90deg,#D9A441,#EFC66B)}
body.admin .badge.info{background:#EAF1FC;color:var(--brand)}
body.admin .adm-avatar{background:linear-gradient(135deg,#0D3B9B,#082763)}
body.admin .adm-foot{color:var(--muted)}

/* tnh.css đặt .top-right{width:100%} trên điện thoại làm thương hiệu bị ép về 0px */
.top .top-right{width:auto;flex:0 0 auto}
.top .brand{flex:1 1 auto;min-width:0}

/* =========================================================================
   CHỮ HIỆN ĐẠI, RÕ NÉT — một họ chữ không chân (Be Vietnam Pro, tự lưu trữ) cho cả tiêu đề và nội dung;
   màu chữ đậm hơn, độ tương phản đạt chuẩn WCAG AA (>= 4,5:1) trên nền trắng.
   ========================================================================= */
:root, :root:not([data-theme="light"]){
  --serif:"Be Vietnam Pro","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --ink:#0B1530;        /* chữ chính: gần đen, ngả xanh */
  --ink-2:#27364F;      /* chữ phụ */
  --muted:#46556F;      /* chú thích: tương phản ~7:1 */
  --line:#D2DEF2; --line-strong:#B0C2E2;
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{
  font-family:"Be Vietnam Pro","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  font-size:16px;line-height:1.65;color:var(--ink);font-weight:400;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;
  font-feature-settings:"kern" 1,"liga" 1;
}
p,li,td,label,input,select,textarea,button{text-rendering:optimizeLegibility}
strong,b{font-weight:700;color:inherit}

/* tiêu đề: không chân, đậm, khít chữ */
h1,h2,h3,h4{font-family:var(--serif);letter-spacing:-.015em}
h1{font-weight:700;font-size:28px;line-height:1.25;color:var(--brand)}
h2{font-weight:700;font-size:20px;line-height:1.3;color:var(--brand)}
h3{font-weight:700;font-size:17px;color:var(--ink)}
h1::before{width:5px;box-shadow:8px 0 0 var(--brand)}
.entry-card h1{font-size:25px;letter-spacing:-.01em}
.guide-title{font-weight:700;color:var(--ink);letter-spacing:-.01em}
.hero-school h2.ttl{font-weight:700;letter-spacing:-.02em;line-height:1.1}
.hero-school .sub2{font-weight:700;letter-spacing:.02em;font-size:16px}
.hero-school .pill,.pill-soft,.hero .in .pill{font-family:var(--serif);font-weight:700;letter-spacing:.06em}
.hero-school p.d{color:var(--ink-2);font-size:15.5px}

/* tên trường trên đầu trang */
.school-name .l1{font-family:var(--serif);font-weight:700;font-size:11px;letter-spacing:.08em;color:var(--brand)}
.school-name .l2{font-family:var(--serif);font-weight:700;font-size:20px;letter-spacing:-.005em;color:var(--brand-red)}
.school-name .l3{font-weight:600;color:var(--muted);letter-spacing:.18em}
.bottom .fname{font-family:var(--serif);font-weight:700;letter-spacing:.04em}
.bottom .fsub{color:rgba(255,255,255,.92);font-size:13.5px}

/* nội dung và chú thích: to hơn, đậm màu hơn */
.hint,.q-anchors,.code-hint,.facts .f span,.guide p,.roles span,.entry-card .intro{color:var(--muted)}
.hint{font-size:14px}
.guide p{font-size:14px;color:var(--ink-2)}
.entry-card .intro{font-size:15.5px;color:var(--ink-2)}
.facts .f b{font-family:var(--serif);font-weight:700;font-size:15px;color:var(--ink)}
.facts .f span{font-size:13.5px;color:var(--muted)}
label{color:var(--ink);font-weight:600;font-size:14.5px}
input::placeholder,textarea::placeholder{color:#6D7C96;font-weight:400}
input,select,textarea{color:var(--ink);font-weight:500}
.entry-card input{font-weight:700;letter-spacing:.08em}

/* câu hỏi trắc nghiệm */
.q-text{font-size:17px;font-weight:600;color:var(--ink);line-height:1.5;letter-spacing:-.005em}
.q-num{font-weight:700}
.q-opt{font-weight:700;color:var(--ink-2);letter-spacing:-.005em}
.q-opts.n3 .q-opt small{font-size:14.5px;font-weight:700;color:var(--ink-2)}
.q-opt small{color:var(--muted);font-weight:600}
.steps .l{font-family:var(--serif);font-weight:600;color:var(--muted);font-size:11px}
.steps .s.on .l{color:var(--brand);font-weight:700}
.steps .s.done .l{color:var(--ink-2)}
.steps .c{font-family:var(--serif);font-weight:700;color:var(--muted)}
.sticky-bar span{font-weight:700;color:var(--ink)}

/* nút bấm */
button,.primary,.ghost{font-family:inherit;font-weight:700;letter-spacing:.005em}
.hero-cta{font-family:var(--serif);font-weight:700;letter-spacing:0}
.top-admin{font-weight:700}

/* bảng, nhãn */
th{font-family:var(--serif);font-weight:700;color:var(--brand);font-size:12px;letter-spacing:.05em}
td{color:var(--ink)}
.disclaimer{color:#4A3508;font-size:14.5px}
.disclaimer strong{color:#4A3508}
.badge{font-weight:700}

/* ------------------------------------------------------------ quản trị */
body.admin{font-size:15px;line-height:1.55;color:var(--ink);--ink:#0B1530;--muted:#46556F}
body.admin h1{font-weight:700;font-size:26px;letter-spacing:-.02em}
body.admin h2{font-weight:700;font-size:17px;letter-spacing:-.01em}
body.admin .card>h2:first-child{color:var(--ink)}
body.admin .hint{font-size:13.5px;color:var(--muted)}
body.admin table{font-size:14px}
body.admin td{color:var(--ink)}
body.admin th{font-size:11.5px;color:var(--brand)}
body.admin label{font-size:13px;font-weight:700;color:var(--ink)}
body.admin .adm-nav a{font-weight:600;font-size:14.5px;color:#EAF1FF}
body.admin .adm-nav a.on{color:#fff;font-weight:700}
body.admin .adm-brand b{font-family:var(--serif);font-weight:700;font-size:16px}
body.admin .adm-crumb{color:var(--muted)}
body.admin .adm-crumb b{color:var(--ink);font-weight:700}
body.admin .kpi .k-label{color:var(--muted);font-weight:600;font-size:13px}
body.admin .kpi .k-val{font-family:var(--serif);font-weight:700;letter-spacing:-.02em;font-size:30px}
body.admin .kpi .k-sub{color:var(--muted)}
body.admin button{font-weight:700}

/* =========================================================================
   BỎ ĐƯỜNG KẺ TRANG TRÍ — thay bằng đổ bóng nhiều lớp để các khối nổi, có chiều sâu
   ========================================================================= */
.hero-school .dv{display:none}                       /* đường kẻ đỏ có hình thoi dưới tiêu đề */
.hero-school .sub2{margin-bottom:12px}
.entry-card,.facts .f{border-top:1px solid var(--line)}   /* bỏ viền vàng phía trên khối */
.entry-card{border-radius:18px}

.card,.facts .f,.guide .g,.roles a,.q-item,.steps,.combo,.statusline,.kpi{
  border:1px solid rgba(176,194,226,.55);
  box-shadow:0 1px 2px rgba(11,21,48,.06),0 4px 12px rgba(13,59,155,.06),0 14px 32px rgba(13,59,155,.08);
}
.entry-card{box-shadow:0 2px 4px rgba(11,21,48,.06),0 10px 24px rgba(13,59,155,.09),0 26px 54px rgba(13,59,155,.12)}
.hero-school{border:0;box-shadow:0 4px 10px rgba(11,21,48,.08),0 18px 40px rgba(13,59,155,.18),0 34px 70px rgba(13,59,155,.12)}
.q-item.answered{box-shadow:0 1px 2px rgba(11,21,48,.06),0 6px 16px rgba(13,59,155,.12)}
.guide .g:hover,.roles a:hover{box-shadow:0 2px 4px rgba(11,21,48,.08),0 12px 28px rgba(13,59,155,.14),0 24px 48px rgba(13,59,155,.10);transform:translateY(-2px)}
.guide .g,.roles a{transition:box-shadow .18s,transform .18s}
.sticky-bar{box-shadow:0 -6px 24px rgba(13,59,155,.10)}

/* quản trị: bỏ vạch màu bên trái ô chỉ số */
body.admin .kpi::before{display:none}
body.admin .kpi{padding-left:18px}
body.admin .card,body.admin .kpi,body.admin .statusline{border:1px solid rgba(176,194,226,.55);
  box-shadow:0 1px 2px rgba(11,21,48,.06),0 4px 12px rgba(13,59,155,.06),0 14px 32px rgba(13,59,155,.07)}
body.admin .card>h2:first-child{border-bottom:0;padding-bottom:0}

/* tên thương hiệu trên thanh bên bị màu liên kết xanh đè lên nền xanh đậm -> ép chữ trắng */
body.admin .adm-brand,body.admin .adm-brand b{color:#fff}
body.admin .adm-brand small{color:#B9CBF0}
body.admin .adm-side-foot a{color:#B9CBF0}
body.admin .adm-side-foot a:hover{color:#fff}
