/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  MSEDU child theme — pro / edtech / SaaS UI
 Author:       MSEDU
 Template:     generatepress
 Version:      9.30
*/

/* ============================================================
   MSEDU — pro / edtech / SaaS / modern / clean
   ============================================================ */
:root{
	--ms-primary:#2F6BFF;
	--ms-primary-dark:#1E50D6;
	--ms-ink:#0F1B33;
	--ms-body:#475569;
	--ms-muted:#64748B;
	--ms-line:#E6EBF2;
	--ms-soft:#F1F5FD;
	--ms-radius:8px;
	--ms-shadow:none;
	--ms-shadow-lg:none;
	--ms-wrap:1200px;
}

/* ---------- Base / typography ---------- */
html{ font-size:15px; scroll-behavior:smooth; } /* cỡ gốc — hạ toàn site đồng bộ qua rem */
body{
	font-family:'Be Vietnam Pro',-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
	color:var(--ms-body); font-size:1rem; line-height:1.7;
	background:#fff;
}
h1,h2,h3,h4,h5,h6,.main-title,.ms-section-title{
	font-family:'Be Vietnam Pro',sans-serif;
	color:var(--ms-ink); font-weight:600; line-height:1.25; letter-spacing:-.01em;
}
a{ color:var(--ms-primary); text-decoration:none; }
a:hover{ color:var(--ms-primary-dark); }
.entry-content [id]{ scroll-margin-top:70px; }
.grid-container{ max-width:var(--ms-wrap); }

/* ---------- Buttons (CTA) ---------- */
.wp-block-button__link{
	background-color:var(--ms-primary) !important; color:#fff !important; border-radius:8px; padding:13px 26px;
	font-weight:600; border:1px solid transparent;
	transition:background .18s ease;
}
.wp-block-button__link:hover{ background-color:var(--ms-primary-dark) !important; color:#fff !important; }
.wp-block-button.is-style-outline .wp-block-button__link{ background-color:#fff !important; color:var(--ms-primary) !important; border:1px solid #CBD9F5; box-shadow:none; }
.wp-block-button.is-style-outline .wp-block-button__link:hover{ border-color:var(--ms-primary); background-color:var(--ms-soft) !important; }
.wp-block-button.is-style-outline .wp-block-button__link:hover{ border-color:var(--ms-primary); background:var(--ms-soft); }

/* ---------- Header + logo (sticky, glass) ---------- */
.site-header{
	position:sticky; top:0; z-index:120;
	background:#fff;
	border-bottom:1px solid var(--ms-line);
}
.inside-header{ max-width:var(--ms-wrap); padding:6px 24px; }
.site-description{ display:none; }
.main-title{ margin:0; line-height:1; }
.main-title a{ display:inline-flex; align-items:center; }
.ms-logo{ display:inline-flex; flex-direction:column; gap:2px; line-height:1; }
.ms-logo-wm{ font-family:'Pixelify Sans',sans-serif; font-weight:700; font-size:26px; line-height:1; letter-spacing:0; color:var(--ms-ink); }
.ms-logo-wm b{ color:var(--ms-primary); font-weight:inherit; }
.ms-logo-pulse-svg{ width:100%; height:9px; display:block; overflow:visible; }
.ms-logo-pulse{ stroke-dasharray:130; stroke-dashoffset:130; animation:msPulseDraw 1.1s ease .25s forwards; }
.main-title a:hover .ms-logo-pulse{ animation:msPulseDraw .65s ease; }
@keyframes msPulseDraw{ from{ stroke-dashoffset:130; } to{ stroke-dashoffset:0; } }
@media (prefers-reduced-motion:reduce){ .ms-logo-pulse{ animation:none; stroke-dashoffset:0; } }

/* ---------- Navigation ---------- */
.main-navigation{ background:transparent; }
.main-navigation .main-nav ul li a{ position:relative; color:var(--ms-ink); font-weight:600; font-family:'Be Vietnam Pro',sans-serif; line-height:38px; padding-left:14px; padding-right:14px; }
/* Hover/active = gạch chân trượt từ trái (bỏ nền bo tròn) */
.main-navigation .main-nav ul li a::after{ content:""; position:absolute; left:14px; right:14px; bottom:5px; height:2px; border-radius:2px; background:var(--ms-primary); transform:scaleX(0); transform-origin:left; transition:transform .18s ease; }
.main-navigation .main-nav ul li a:hover,
.main-navigation .main-nav ul li.current-menu-item>a{ color:var(--ms-primary); background:transparent; }
.main-navigation .main-nav ul li a:hover::after,
.main-navigation .main-nav ul li.current-menu-item>a::after{ transform:scaleX(1); }
button.menu-toggle, .main-navigation .menu-toggle{ color:var(--ms-ink); font-weight:600; }
/* Desktop: menu nằm ngay sau logo (lấp khoảng trống), ô tìm kiếm đẩy về cuối */
@media (min-width:769px){
	.site-header .main-navigation.sub-menu-right{ margin-left:4px !important; flex:1 1 auto; }
	.site-header .main-navigation.sub-menu-right .main-nav{ width:100%; }
	.site-header .main-navigation.sub-menu-right .main-nav > ul{ display:flex; width:100%; }
	.site-header .ms-search-item{ margin-left:auto; }
}

/* ---------- Tìm kiếm header (trigger giống ô input + modal live search) ---------- */
.ms-search-item{ display:flex; align-items:center; margin-left:6px; }
.ms-search-trigger{ display:inline-flex; align-items:center; gap:8px; min-width:260px; background:#fff !important; border:1px solid var(--ms-line); border-radius:8px; color:var(--ms-muted) !important; font-family:inherit; font-size:.9rem; font-weight:500; line-height:1; padding:9px 14px; cursor:pointer; transition:border-color .15s ease, color .15s ease; }
.ms-search-trigger:hover{ border-color:#9DB9F0; background:#fff !important; color:var(--ms-ink) !important; }
.ms-search-trigger svg{ opacity:.7; color:inherit; }
@media (max-width:768px){ .ms-search-trigger-txt{ display:none; } .ms-search-trigger{ padding:9px; min-width:0; } }

body.ms-search-lock{ overflow:hidden; }
.ms-search-overlay{ position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:16px; background:rgba(15,27,51,.55); backdrop-filter:blur(2px); }
.ms-search-overlay[hidden]{ display:none; }
.ms-search-box{ width:100%; max-width:680px; background:#fff; border:1px solid var(--ms-line); border-radius:14px; box-shadow:0 30px 70px rgba(15,27,51,.32); overflow:hidden; }
.ms-search-box::before{ content:""; display:block; height:3px; background:linear-gradient(90deg,#2F6BFF,#16A34A,#F59E0B,#EF4444); }
.ms-search-top{ display:flex; align-items:center; gap:14px; padding:18px 20px; border-bottom:1px solid var(--ms-line); }
.ms-search-ic{ display:flex; color:var(--ms-primary); }
.ms-search-ic svg{ width:22px; height:22px; }
.ms-search-box input.ms-search-input{ flex:1; min-width:0; height:auto; margin:0; padding:0; border:0; outline:0; box-shadow:none; background:transparent; border-radius:0; -webkit-appearance:none; appearance:none; font-family:inherit; font-size:1.15rem; color:var(--ms-ink); }
.ms-search-box input.ms-search-input:focus{ border:0; outline:0; box-shadow:none; background:transparent; }
.ms-search-box input.ms-search-input::placeholder{ color:var(--ms-muted); }
.ms-search-box input.ms-search-input::-webkit-search-cancel-button{ -webkit-appearance:none; }
.ms-search-esc{ flex:0 0 auto; border:1px solid var(--ms-line); background:var(--ms-soft); color:var(--ms-muted); font-size:.74rem; font-weight:600; border-radius:6px; padding:4px 9px; cursor:pointer; }
.ms-search-esc:hover{ color:var(--ms-ink); }
.ms-search-results{ max-height:min(60vh,440px); overflow-y:auto; padding:6px; }
.ms-search-empty{ padding:30px 16px; text-align:center; color:var(--ms-muted); font-size:.95rem; }
.ms-sr-item{ display:flex; align-items:center; gap:12px; padding:9px 12px; border-radius:8px; color:var(--ms-ink); }
.ms-sr-item.active, .ms-sr-item:hover{ background:var(--ms-soft); }
.ms-sr-thumb{ flex:0 0 auto; width:44px; height:44px; border-radius:6px; background-size:cover; background-position:center; background-color:var(--ms-soft); border:1px solid var(--ms-line); }
.ms-sr-main{ display:flex; flex-direction:column; min-width:0; }
.ms-sr-title{ font-weight:600; font-size:.96rem; line-height:1.35; color:var(--ms-ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ms-sr-item.active .ms-sr-title{ color:var(--ms-primary); }
.ms-sr-meta{ font-size:.78rem; color:var(--ms-muted); margin-top:2px; }
/* Trạng thái gợi ý khi popup mở + footer phím tắt */
.ms-search-sect{ padding:12px 14px 6px; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--ms-muted); }
.ms-search-chips{ display:flex; flex-wrap:wrap; gap:8px; padding:0 14px 12px; }
.ms-chip{ font-size:.85rem; font-weight:500; color:var(--ms-ink); background:var(--ms-soft); border:1px solid var(--ms-line); border-radius:6px; padding:6px 12px; }
.ms-chip:hover{ border-color:#9DB9F0; color:var(--ms-primary); }
.ms-search-hint{ padding:4px 14px 14px; color:var(--ms-muted); font-size:.86rem; }
.ms-search-foot{ display:flex; gap:16px; padding:9px 16px; border-top:1px solid var(--ms-line); font-size:.74rem; color:var(--ms-muted); }
.ms-search-foot kbd{ font-family:inherit; background:var(--ms-soft); border:1px solid var(--ms-line); border-radius:4px; padding:1px 5px; font-size:.72rem; margin-right:2px; line-height:1.4; }

/* ---------- Hero (SaaS) ---------- */
.msedu-hero{
	position:relative; overflow:hidden; text-align:center;
	background:linear-gradient(180deg,#E9F1FF 0%, #F4F8FF 55%, #ffffff 100%);
	border:1px solid #E3ECFC; border-radius:14px;
	padding:84px 32px 80px; margin:30px 0 52px;
}
/* lưới chấm mờ dần — modern/SaaS */
.msedu-hero::before{
	content:""; position:absolute; inset:0; pointer-events:none;
	background-image:radial-gradient(rgba(47,107,255,.11) 1.2px, transparent 1.2px);
	background-size:24px 24px;
	-webkit-mask-image:radial-gradient(ellipse 72% 72% at 50% 26%, #000 0%, transparent 70%);
	mask-image:radial-gradient(ellipse 72% 72% at 50% 26%, #000 0%, transparent 70%);
}
.msedu-hero > *{ position:relative; z-index:1; }
/* Thẻ chủ đề nổi (floating) — app-like */
.ms-float{ position:absolute; z-index:1; display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--ms-line); border-radius:8px; padding:7px 12px 7px 8px; font-size:.82rem; font-weight:600; color:var(--ms-ink); box-shadow:0 10px 26px rgba(15,27,51,.10); }
.ms-float-ic{ display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:6px; flex:0 0 auto; }
.ms-float-1{ top:40px; left:52px; transform:rotate(-5deg); }
.ms-float-2{ top:58px; right:46px; transform:rotate(4deg); }
.ms-float-3{ bottom:48px; left:78px; transform:rotate(5deg); }
.ms-float-4{ bottom:40px; right:78px; transform:rotate(-4deg); }
a.ms-float{ transition:transform .18s ease, box-shadow .18s ease; }
a.ms-float:hover{ transform:translateY(-3px) rotate(0deg); box-shadow:0 14px 30px rgba(15,27,51,.14); }
@media (max-width:1040px){ .ms-float{ display:none; } }
.ms-eyebrow{
	width:fit-content; margin:0 auto 20px !important;
	font-size:.78rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase;
	color:var(--ms-primary); background:#fff; border:1px solid #DBE5FA;
	padding:7px 16px; border-radius:6px;
}
.msedu-hero h1{ font-size:3rem; line-height:1.12; letter-spacing:-.025em; margin:0 0 .38em; }
.msedu-hero p{ color:var(--ms-muted); font-size:1.2rem; max-width:680px; margin:0 auto 26px; }
/* Hero kiểu knowledge-hub: ô tìm kiếm lớn + chip chủ đề */
.ms-hero-search{ display:flex; width:100%; max-width:520px; margin:0 auto; justify-content:flex-start; gap:10px; padding:14px 18px; font-size:1rem; border-radius:8px; box-shadow:0 2px 12px rgba(15,27,51,.05); }
.ms-hero-search:hover{ box-shadow:0 5px 18px rgba(15,27,51,.09); }
.ms-hero-search span{ font-weight:500; color:var(--ms-muted); }
.ms-hero-chips{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; align-items:center; margin-top:18px; font-size:.88rem; }
.ms-hero-chips > span{ color:var(--ms-muted); }
.ms-hero-chips a{ background:#fff; border:1px solid var(--ms-line); border-radius:6px; padding:5px 13px; color:var(--ms-ink); font-weight:500; transition:border-color .15s ease, color .15s ease; }
.ms-hero-chips a:hover{ border-color:#9DB9F0; color:var(--ms-primary); }

/* ---------- Section title ---------- */
.ms-section-title{ font-size:1.9rem; margin:8px 0 30px; }

/* ---------- Homepage sections ---------- */
/* Trang chủ dùng full chiều rộng container (1200) thay vì content-size 796 */
.home .content-area .entry-content{ max-width:100%; }
.home .entry-content > *{ max-width:var(--ms-wrap); margin-left:auto; margin-right:auto; }

.ms-topics{ margin:0 0 16px; }
.ms-topics > .wp-block-group__inner-container,
.ms-topics-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin:0 0 16px; }
.ms-topic-card{ background:#fff; border:1px solid var(--ms-line); border-radius:8px; padding:28px 24px; box-shadow:var(--ms-shadow); transition:box-shadow .2s ease, transform .2s ease; }
.ms-topic-card:hover{ border-color:#9DB9F0; }
.ms-topic-icon{ width:52px; height:52px; border-radius:8px; display:flex; align-items:center; justify-content:center; margin-bottom:16px; }
.ms-topic-card h3{ font-size:1.25rem; margin:0 0 8px; }
.ms-topic-card p{ color:var(--ms-muted); margin:0 0 16px; }
.ms-topic-link{ font-weight:600; color:var(--ms-primary); text-decoration:none; }
.ms-topic-arrow{ display:inline-block; transition:transform .15s ease; }
.ms-topic-card:hover .ms-topic-arrow{ transform:translateX(4px); }

.ms-stats{ background:var(--ms-soft); border:1px solid #E7EEFC; border-radius:8px; padding:34px 24px; margin:44px 0; text-align:center; }
.ms-stats > .wp-block-group__inner-container{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.ms-stat-num{ font-family:'Be Vietnam Pro',sans-serif; font-size:2.3rem; font-weight:700; color:var(--ms-primary); line-height:1; }
.ms-stat-label{ color:var(--ms-muted); font-size:.95rem; margin-top:8px; }

.ms-cta{ background:var(--ms-primary); border-radius:8px; padding:54px 32px; text-align:center; margin:52px 0 8px; }
.ms-cta h2{ color:#fff !important; font-size:2.1rem; margin:0 0 .4em; }
.ms-cta p{ color:rgba(255,255,255,.88); font-size:1.15rem; margin:0 auto 26px; max-width:620px; }
.ms-cta .wp-block-button__link{ background-color:#fff !important; color:var(--ms-primary) !important; }

@media (max-width:768px){
	.ms-topics > .wp-block-group__inner-container,
	.ms-topics-grid{ grid-template-columns:1fr; }
	.ms-stats > .wp-block-group__inner-container{ grid-template-columns:repeat(2,1fr); gap:24px 12px; }
	.ms-cta h2{ font-size:1.6rem; }
}

/* ---------- Card grid (Query Loop) ---------- */
.wp-block-query .wp-block-post-template{ display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:30px; }
.wp-block-query .wp-block-post-template > li,
.wp-block-query .wp-block-post{ width:auto !important; max-width:100% !important; margin:0 !important; }
.wp-block-query .wp-block-post{
	background:#fff; border:1px solid var(--ms-line); border-radius:var(--ms-radius);
	overflow:hidden; display:flex; flex-direction:column; box-shadow:var(--ms-shadow);
	transition:box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
.wp-block-query .wp-block-post:hover{ border-color:#9DB9F0; }
.wp-block-query .wp-block-post-featured-image{ margin:0; overflow:hidden; }
.wp-block-query .wp-block-post-featured-image img{ width:100%; aspect-ratio:16/9; object-fit:cover; transition:transform .4s ease; }
.wp-block-query .wp-block-post:hover .wp-block-post-featured-image img{ transform:scale(1.06); }
.wp-block-query .wp-block-post-terms{ margin:16px 18px 0; font-size:.72rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--ms-primary); }
.wp-block-query .wp-block-post-terms a{ color:var(--ms-primary); }
.wp-block-query .wp-block-post-title{ font-size:1.16rem; line-height:1.4; margin:8px 18px 8px; }
.wp-block-query .wp-block-post-title a{ color:var(--ms-ink); }
.wp-block-query .wp-block-post-title a:hover{ color:var(--ms-primary); }
.wp-block-query .wp-block-post-excerpt{ margin:0 18px 12px; color:var(--ms-muted); font-size:.95rem; }
.wp-block-query .wp-block-post-excerpt__more-link{ display:inline-block; margin:0 18px 18px; color:var(--ms-primary); font-weight:600; }
.wp-block-query .wp-block-post-excerpt__more-link:hover{ text-decoration:underline; }

/* pagination */
.wp-block-query-pagination{ gap:6px; margin-top:36px; justify-content:center; }
.wp-block-query-pagination a, .wp-block-query-pagination .current{ padding:7px 13px; border-radius:8px; border:1px solid var(--ms-line); }
.wp-block-query-pagination .current{ background:var(--ms-primary); color:#fff; border-color:var(--ms-primary); }

/* ---------- Single post ---------- */
.single .featured-image.page-header-image-single,
.single .page-header-image-single{ display:none; }
.entry-header .entry-title{ font-size:1.55rem; font-weight:700; line-height:1.28; margin-top:.2em; }
.single .entry-content{ max-width:760px; }
@media (min-width:769px){
	body:not(.no-sidebar) .content-area{ width:73% !important; }
	body:not(.no-sidebar) .is-right-sidebar{ width:27% !important; }
	.single .inside-article{ padding-left:28px; padding-right:28px; }
}
/* --- Typography đọc (long-form): cỡ 16px, dòng thoáng, mực đậm hơn --- */
.single .entry-content{ color:#3B4759; }
.single .entry-content p,
.single .entry-content li{ font-size:1rem; line-height:1.7; }
.entry-content p a,
.entry-content li a{ color:var(--ms-primary); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:2px; text-decoration-color:rgba(47,107,255,.42); transition:text-decoration-color .15s ease; }
.entry-content p a:hover,
.entry-content li a:hover{ text-decoration-color:var(--ms-primary); }
/* Link ngoài site (kiểu Microsoft Learn): mũi tên chéo nhỏ sau link, trừ link bọc ảnh/nút/file đã có icon riêng. */
.entry-content :where(p, li, td) a[href^="http"]:not([href*="msedu.vn"]):not(.wp-block-file__button):not(.wp-block-button__link):not(:has(img))::after{
	content:"";
	display:inline-block;
	width:.62em; height:.62em;
	margin-left:.16em;
	vertical-align:.04em;
	background:currentColor;
	opacity:.7;
	-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cline%20x1='7'%20y1='17'%20x2='17'%20y2='7'/%3E%3Cpolyline%20points='10%207%2017%207%2017%2014'/%3E%3C/svg%3E") center/contain no-repeat;
	mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cline%20x1='7'%20y1='17'%20x2='17'%20y2='7'/%3E%3Cpolyline%20points='10%207%2017%207%2017%2014'/%3E%3C/svg%3E") center/contain no-repeat;
}
.entry-content strong,
.entry-content b{ font-weight:600; color:var(--ms-ink); }
.entry-content blockquote{ margin:1.8em 0; padding:10px 0 10px 22px; border-left:3px solid #CBD5E1; color:#334155; font-style:normal; }
.entry-content blockquote p{ font-size:1.067rem; font-style:normal; }
.entry-content blockquote cite{ display:block; margin-top:.4em; color:var(--ms-muted); font-size:.9rem; font-style:normal; }

/* breadcrumb */
.ms-breadcrumb{ display:flex; align-items:center; font-size:.85rem; color:var(--ms-muted); margin:0 0 16px; }
.ms-breadcrumb a{ color:var(--ms-muted); white-space:nowrap; flex:0 0 auto; }
.ms-breadcrumb a:hover{ color:var(--ms-primary); }
.ms-breadcrumb .sep{ margin:0 7px; color:#cbd5e1; flex:0 0 auto; }
.ms-breadcrumb .current{ color:var(--ms-ink); font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; max-width:34ch; flex:0 1 auto; }

/* post meta nâng cấp */
.single .entry-header .entry-meta{ display:none; }
.ms-post-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; margin:12px 0 0; color:var(--ms-muted); font-size:.92rem; }
.ms-meta-cat{ background:var(--ms-soft); color:var(--ms-primary-dark) !important; font-weight:600; font-size:.74rem; text-transform:uppercase; letter-spacing:.04em; padding:4px 12px; border-radius:6px; }
.ms-meta-cat:hover{ background:#e2ebfb; }
.ms-meta-item{ display:inline-flex; align-items:center; gap:6px; }
.ms-meta-item svg{ opacity:.7; }

/* bài liên quan */
.ms-related{ max-width:none; margin:48px 0 8px; }
.ms-related h2{ font-size:1.5rem; margin:0 0 22px; padding-top:24px; border-top:1px solid var(--ms-line); }
.ms-related-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.ms-related-card{ background:#fff; border:1px solid var(--ms-line); border-radius:8px; overflow:hidden; box-shadow:var(--ms-shadow); transition:box-shadow .25s ease, transform .25s ease; display:flex; flex-direction:column; }
.ms-related-card:hover{ border-color:#9DB9F0; }
.ms-related-card .thumb{ display:block; aspect-ratio:16/9; overflow:hidden; }
.ms-related-card .thumb img{ width:100%; height:100%; object-fit:cover; }
.ms-related-card h3{ font-size:1.02rem; line-height:1.4; margin:14px 16px 18px; }
.ms-related-card h3 a{ color:var(--ms-ink); }
.ms-related-card h3 a:hover{ color:var(--ms-primary); }
@media (max-width:768px){ .ms-related-grid{ grid-template-columns:1fr; } }

/* ---------- Footer bài: ẩn mặc định GP, thiết kế lại prev/next ---------- */
.single .cat-links,
.single .post-navigation,
.single #nav-below{ display:none !important; }
.ms-postnav{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:44px 0 8px; }
.ms-postnav-item{ display:flex; flex-direction:column; gap:7px; padding:15px 18px; border:1px solid var(--ms-line); border-radius:8px; background:#fff; transition:border-color .15s ease; }
.ms-postnav-item:hover{ border-color:var(--ms-primary); }
.ms-postnav-next{ text-align:right; align-items:flex-end; }
.ms-postnav-dir{ display:inline-flex; align-items:center; gap:6px; font-size:.72rem; font-weight:700; color:var(--ms-muted); text-transform:uppercase; letter-spacing:.06em; }
.ms-postnav-item:hover .ms-postnav-dir{ color:var(--ms-primary); }
.ms-postnav-dir svg{ transition:transform .18s ease; }
.ms-postnav-prev:hover .ms-postnav-dir svg{ transform:translateX(-3px); }
.ms-postnav-next:hover .ms-postnav-dir svg{ transform:translateX(3px); }
.ms-postnav-title{ font-weight:600; color:var(--ms-ink); font-size:.96rem; line-height:1.45; }
.ms-postnav-item:hover .ms-postnav-title{ color:var(--ms-primary); }
@media (max-width:600px){
	.ms-postnav{ grid-template-columns:1fr; }
	.ms-postnav-next{ text-align:left; align-items:flex-start; }
}

/* ---------- Form bình luận ---------- */
.comments-area{ margin-top:50px; padding-top:30px; border-top:1px solid var(--ms-line); }
.comment-respond #reply-title,
.comments-title{ font-size:1.5rem; color:var(--ms-ink); margin:0 0 6px; }
.comment-notes{ color:var(--ms-muted); font-size:.9rem; margin:0 0 20px; }
.comment-notes .required{ color:#e23b3b; }
.comment-form{ margin-top:8px; }
.comment-form p{ margin:0 0 14px; }
.comment-form textarea,
.comment-form input[type=text],
.comment-form input[type=email],
.comment-form input[type=url]{
	width:100%; background:#fff; border:1px solid #CBD5E1; border-radius:8px;
	padding:12px 15px; font-family:inherit; font-size:1rem; color:var(--ms-ink);
	transition:border-color .15s ease, box-shadow .15s ease; box-shadow:none;
}
.comment-form textarea{ min-height:140px; resize:vertical; display:block; }
.comment-form textarea:focus,
.comment-form input[type=text]:focus,
.comment-form input[type=email]:focus,
.comment-form input[type=url]:focus{
	border-color:var(--ms-primary); box-shadow:0 0 0 3px rgba(47,107,255,.12); outline:none;
}
.comment-form ::placeholder{ color:var(--ms-muted); opacity:1; }
.comment-form-cookies-consent{ display:flex; align-items:center; gap:9px; }
.comment-form-cookies-consent input{ width:auto !important; margin:0; }
.comment-form-cookies-consent label{ color:var(--ms-muted); font-size:.9rem; margin:0; }
.comment-form .form-submit{ margin-bottom:0; }
.comment-form .form-submit input[type=submit],
.comment-form #submit{
	background:var(--ms-primary); color:#fff; border:1px solid transparent; border-radius:8px;
	padding:13px 30px; font-family:inherit; font-weight:600; font-size:1rem; cursor:pointer;
	transition:background .18s ease; box-shadow:none;
}
.comment-form .form-submit input[type=submit]:hover,
.comment-form #submit:hover{ background:var(--ms-primary-dark); }
.ms-recaptcha{ margin:2px 0 20px; }

.entry-content h2{ font-size:1.2rem; font-weight:600; margin-top:1.9em; }
.entry-content h3{ font-size:1.05rem; font-weight:600; margin-top:1.5em; }
/* h4-h6 chưa được style → GP mặc định để to hơn h3; ép nhỏ dần cho đúng phân cấp. */
.entry-content h4{ font-size:.97rem; font-weight:600; margin-top:1.3em; }
.entry-content h5{ font-size:.9rem; font-weight:600; text-transform:none; letter-spacing:0; margin-top:1.2em; }
.entry-content h6{ font-size:.85rem; font-weight:600; text-transform:none; letter-spacing:0; margin-top:1.1em; color:var(--ms-muted); }
.entry-content .wp-block-image img{ border-radius:5px; border:1px solid #CBD5E1; box-shadow:none; }
/* Figure co theo ảnh để caption nằm gọn dưới ảnh (không trôi sang phải với ảnh nhỏ) */
.entry-content .wp-block-image{ width:fit-content; max-width:100%; }
/* Mẫu dùng chung (front): nhịp dọc giữa tiêu đề / ảnh / nội dung (ảnh mặc định margin 0 → dính sát) */
.entry-content .ms-gtpl > *{ margin-bottom:1.5em; }
.entry-content .ms-gtpl > *:last-child{ margin-bottom:0; }
.entry-content .wp-block-gallery .wp-block-image{ width:auto; max-width:none; }
.entry-content .wp-block-image > figcaption,
.entry-content .wp-block-image__caption,
.entry-content figure > figcaption{ font-size:.86rem; color:var(--ms-muted); text-align:center; margin-top:8px; line-height:1.5; }

/* nhịp dọc — spacing giữa các block trong bài */
.single .entry-content > *{ margin-bottom:1.55em; }
.single .entry-content > *:first-child{ margin-top:0; }
.single .entry-content > .wp-block-image,
.single .entry-content > figure{ margin-top:.4em; margin-bottom:2em; }
.single .entry-content > .wp-block-table{ margin-bottom:1.2em; }
.single .entry-content > h2{ margin-top:2em; margin-bottom:.8em; }
.single .entry-content > h3{ margin-top:1.7em; margin-bottom:.7em; }
.single .entry-content > .wp-block-table + h2{ margin-top:1em; }
.single .entry-content > .wp-block-table + h3{ margin-top:.9em; }
.entry-content .wp-block-list li{ margin-bottom:.3em; }
/* List: giảm thụt lề (mặc định GP ~45px) cho gọn */
.entry-content ul,
.entry-content ol{ margin-left:0; padding-left:1.7em; }
.entry-content li ul,
.entry-content li ol{ margin-top:.3em; }

/* inline UI-label chips in tutorials */
.entry-content button{
	background:var(--ms-soft); color:var(--ms-primary-dark); border:1px solid #D6E2FB;
	border-radius:8px; padding:2px 10px; font-weight:600; font-size:.95em; line-height:1.6; cursor:default;
}

/* table of contents */
.msedu-toc{ background:var(--ms-soft); border:1px solid #DCE7F8; border-radius:8px; padding:16px 22px; margin:0 0 28px; }
.msedu-toc .ms-toc-head{ display:flex; align-items:center; justify-content:space-between; cursor:pointer; user-select:none; }
.msedu-toc .ms-toc-title{ font-family:'Be Vietnam Pro',sans-serif; font-weight:700; color:var(--ms-ink); font-size:1.05rem; }
.msedu-toc h2{ margin:0 0 10px; font-size:1.05rem; border:0; padding:0; }
.msedu-toc .ms-toc-toggle{ background:none; border:0; cursor:pointer; color:var(--ms-muted); font-size:18px; line-height:1; padding:0 4px; transition:transform .2s ease; }
.msedu-toc.collapsed .ms-toc-toggle{ transform:rotate(-90deg); }
.msedu-toc ul{ list-style:none; margin:12px 0 0; padding:0; }
.msedu-toc.collapsed ul{ display:none; }
.msedu-toc li{ margin:0; }
.msedu-toc ol{ list-style:none; counter-reset:toc; margin:12px 0 0; padding:0; }
.msedu-toc.collapsed ol{ display:none; }
.msedu-toc li{ margin:0; counter-increment:toc; }
.msedu-toc a{ display:flex; gap:10px; align-items:baseline; padding:7px 0 7px 14px; border-left:2px solid #d7e3f7; color:var(--ms-body); font-size:.98rem; line-height:1.45; transition:color .15s ease, border-color .15s ease; }
.msedu-toc a::before{ content:counter(toc); color:var(--ms-primary); font-weight:700; font-size:.85rem; min-width:18px; }
.msedu-toc a:hover{ color:var(--ms-primary); border-left-color:var(--ms-primary); }
.msedu-toc a.active{ color:var(--ms-primary); font-weight:600; border-left-color:var(--ms-primary); }

/* alerts / callouts */
.entry-content .msedu-alert{ border:0; border-left:4px solid var(--ms-bd,#94A3B8); border-radius:0 8px 8px 0; padding:16px 20px; margin:1.8em 0; }
.entry-content .msedu-alert > div{ padding:0; }
.msedu-alert > :first-child,
.msedu-alert .wp-block-group__inner-container > :first-child{ margin-top:0; }
.msedu-alert > :last-child,
.msedu-alert .wp-block-group__inner-container > :last-child,
.msedu-alert p:last-child{ margin-bottom:0; }
.msedu-alert p{ margin:0 0 10px; }
.msedu-alert p:first-child{ display:inline; font-weight:700; }
.msedu-alert p:first-child::after{ content:": "; }
.msedu-alert p:first-child + p{ display:inline; }
/* Icon callout = line-icon đơn sắc (mask SVG) theo màu tiêu đề — thay emoji.
   Scope :not([class*="qfe-co-ic-"]) để KHÔNG đụng tuỳ chọn icon riêng (giữ nguyên qfe-co-ic-*). */
.msedu-alert:not([class*="qfe-co-ic-"]) p:first-child::before{ content:""; display:inline-block; width:1.04em; height:1.04em; margin-right:.42em; vertical-align:-.18em; background:currentColor; -webkit-mask:var(--ms-ic) center/contain no-repeat; mask:var(--ms-ic) center/contain no-repeat; }
.msedu-alert-info{ background:#EFF5FF; --ms-bd:#2F6BFF; --ms-ic:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='12'%20cy='12'%20r='10'/%3E%3Cline%20x1='12'%20y1='16'%20x2='12'%20y2='12'/%3E%3Cline%20x1='12'%20y1='8'%20x2='12.01'%20y2='8'/%3E%3C/svg%3E"); }
.msedu-alert-info p:first-child{ color:#1E50D6; }
.msedu-alert-success{ background:#F0FAF4; --ms-bd:#16A34A; --ms-ic:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M22%2011.08V12a10%2010%200%201%201-5.93-9.14'/%3E%3Cpolyline%20points='22%204%2012%2014.01%209%2011.01'/%3E%3C/svg%3E"); }
.msedu-alert-success p:first-child{ color:#15803D; }
.msedu-alert-warning{ background:#FFF8EC; --ms-bd:#F59E0B; --ms-ic:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M10.29%203.86L1.82%2018a2%202%200%200%200%201.71%203h16.94a2%202%200%200%200%201.71-3L13.71%203.86a2%202%200%200%200-3.42%200z'/%3E%3Cline%20x1='12'%20y1='9'%20x2='12'%20y2='13'/%3E%3Cline%20x1='12'%20y1='17'%20x2='12.01'%20y2='17'/%3E%3C/svg%3E"); }
.msedu-alert-warning p:first-child{ color:#B45309; }
.msedu-alert-danger{ background:#FEF2F2; --ms-bd:#EF4444; --ms-ic:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpolygon%20points='7.86%202%2016.14%202%2022%207.86%2022%2016.14%2016.14%2022%207.86%2022%202%2016.14%202%207.86'/%3E%3Cline%20x1='12'%20y1='8'%20x2='12'%20y2='12'/%3E%3Cline%20x1='12'%20y1='16'%20x2='12.01'%20y2='16'/%3E%3C/svg%3E"); }
.msedu-alert-danger p:first-child{ color:#DC2626; }

/* ---------- Archive / Category / Search: lưới thẻ ---------- */
.archive .site-main,
.blog .site-main,
.search-results .site-main{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.archive .site-main > *:not(article),
.blog .site-main > *:not(article),
.search-results .site-main > *:not(article){ grid-column:1 / -1; }
.archive .site-main > article,
.blog .site-main > article,
.search-results .site-main > article{ margin:0; padding:0; background:#fff; border:1px solid var(--ms-line); border-radius:var(--ms-radius); overflow:hidden; transition:border-color .2s ease; }
.archive .site-main > article:hover,
.blog .site-main > article:hover,
.search-results .site-main > article:hover{ border-color:#9DB9F0; }
.archive .inside-article,
.blog .inside-article,
.search-results .inside-article{ display:flex; flex-direction:column; padding:0; height:100%; }
.archive .post-image,
.blog .post-image,
.search-results .post-image{ order:-2; margin:0; overflow:hidden; }
.archive .post-image img,
.blog .post-image img,
.search-results .post-image img{ width:100%; aspect-ratio:16/9; object-fit:cover; display:block; border:0; border-radius:0; transition:transform .4s ease; }
.archive .site-main > article:hover .post-image img,
.blog .site-main > article:hover .post-image img,
.search-results .site-main > article:hover .post-image img{ transform:scale(1.05); }
.archive .entry-header,
.blog .entry-header,
.search-results .entry-header{ order:-1; padding:16px 18px 0; }
.archive .entry-title,
.blog .entry-title,
.search-results .entry-title{ font-size:1.16rem; line-height:1.4; margin:0; }
.archive .entry-title a,
.blog .entry-title a,
.search-results .entry-title a{ color:var(--ms-ink); }
.archive .entry-title a:hover,
.blog .entry-title a:hover,
.search-results .entry-title a:hover{ color:var(--ms-primary); }
.archive .entry-header .entry-meta,
.blog .entry-header .entry-meta,
.search-results .entry-header .entry-meta{ padding:6px 0 0; margin:0; font-size:.82rem; color:var(--ms-muted); text-align:left; }
.archive .entry-summary,
.blog .entry-summary,
.search-results .entry-summary{ margin:0; padding:10px 18px 0; color:var(--ms-muted); font-size:.95rem; line-height:1.55; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.archive .entry-summary .more-link,
.blog .entry-summary .more-link{ display:none; }
.archive footer.entry-meta,
.blog footer.entry-meta,
.search-results footer.entry-meta{ margin-top:auto; padding:13px 18px 15px; font-size:.8rem; color:var(--ms-muted); border-top:1px solid var(--ms-line); display:flex; gap:16px; flex-wrap:wrap; }
.archive footer.entry-meta a,
.blog footer.entry-meta a,
.search-results footer.entry-meta a{ color:var(--ms-muted); }
.archive footer.entry-meta a:hover,
.blog footer.entry-meta a:hover{ color:var(--ms-primary); }
.entry-meta time.updated{ display:none; }
.entry-meta .byline{ display:none; }
@media (max-width:768px){
	.archive .site-main,
	.blog .site-main,
	.search-results .site-main{ grid-template-columns:1fr; }
}

/* hide page title on front page */
.home .page-header, .home .entry-header{ display:none; }

/* ---------- Back to top ---------- */
#ms-totop{
	position:fixed; right:22px; bottom:22px; z-index:200;
	width:46px; height:46px; border:0; border-radius:50%;
	background:var(--ms-primary); color:#fff; cursor:pointer;
	display:flex; align-items:center; justify-content:center; padding:0;
	opacity:0; visibility:hidden; transform:translateY(12px);
	transition:opacity .25s ease, transform .25s ease, background .2s ease, visibility .25s;
}
#ms-totop.show{ opacity:1; visibility:visible; transform:translateY(0); }
#ms-totop:hover{ background:var(--ms-primary-dark); }
@media (max-width:768px){ #ms-totop{ right:16px; bottom:16px; width:42px; height:42px; } }

/* ---------- Footer (multi-column, dark, pro) ---------- */
.site-footer .site-info{ background:var(--ms-ink); color:#A9B6CE; border-top:3px solid; border-image:linear-gradient(90deg,#2F6BFF,#4ADE80,#FBBF24,#F87171) 1; }
.site-footer .inside-site-info{ display:block; max-width:var(--ms-wrap); padding:0 24px; text-align:left; }
.site-footer a{ color:#fff; }
.ms-footer{ padding-top:64px; }
.ms-footer-cols{ display:grid; grid-template-columns:1.8fr 1fr 1fr 1fr; gap:40px; }
.ms-footer-logo{ display:inline-flex; flex-direction:column; gap:3px; line-height:1; margin-bottom:16px; }
.ms-footer-logo .ms-logo-wm{ font-family:'Pixelify Sans',sans-serif; font-weight:700; font-size:28px; line-height:1; letter-spacing:0; }
.ms-footer-logo .ms-logo-pulse-svg{ width:100%; height:9px; display:block; overflow:visible; }
.ms-footer-brand p{ color:#8B98B4; max-width:330px; margin:0; font-size:.92rem; line-height:1.7; }
.ms-footer-col h4{ color:#7E8BA6; font-size:.74rem; font-weight:700; text-transform:uppercase; letter-spacing:.09em; margin:0 0 16px; }
.ms-footer-col ul{ list-style:none; margin:0; padding:0; }
.ms-footer-col li{ margin-bottom:11px; }
.ms-footer-col a{ display:inline-flex; align-items:baseline; gap:8px; color:#A9B6CE; font-size:.93rem; transition:color .15s ease, transform .15s ease; }
.ms-footer-col a:hover{ color:#fff; transform:translateX(3px); }
.ms-footer-count{ color:#5C6A86; font-size:.76rem; font-weight:500; }
.ms-footer-bottom{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px 20px; margin-top:48px; padding:20px 0; border-top:1px solid rgba(255,255,255,.1); color:#8190AD; font-size:.88rem; }
.ms-footer-legal{ display:inline-flex; gap:20px; }
.ms-footer-legal a{ color:#8190AD; }
.ms-footer-legal a:hover{ color:#fff; }

/* ---------- Form liên hệ ---------- */
.ms-contact-form{ max-width:560px; margin:8px 0 0; }
.ms-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.ms-field{ margin:0 0 16px; }
.ms-field label{ display:block; font-weight:600; color:var(--ms-ink); margin:0 0 6px; font-size:.92rem; }
.ms-field label span{ color:#e23b3b; }
.ms-contact-form input[type=text], .ms-contact-form input[type=email], .ms-contact-form textarea{ width:100%; background:#fff; border:1px solid #CBD5E1; border-radius:8px; padding:12px 16px; font-family:inherit; font-size:1rem; color:var(--ms-ink); transition:border-color .15s ease, box-shadow .15s ease; }
.ms-contact-form textarea{ resize:vertical; min-height:130px; }
.ms-contact-form input:focus, .ms-contact-form textarea:focus{ border-color:var(--ms-primary); box-shadow:0 0 0 3px rgba(47,107,255,.12); outline:none; }
.ms-contact-form button{ background:var(--ms-primary); color:#fff; border:0; border-radius:8px; padding:12px 28px; font-family:inherit; font-weight:600; font-size:1rem; cursor:pointer; transition:background .18s ease; }
.ms-contact-form button:hover{ background:var(--ms-primary-dark); }
.ms-form-note{ border-radius:8px; padding:13px 16px; margin:0 0 18px; font-size:.95rem; }
.ms-form-ok{ background:#F0FAF4; border:1px solid #BBE7CC; color:#15803D; }
.ms-form-err{ background:#FEF2F2; border:1px solid #F3C9C9; color:#DC2626; }

/* ---------- Sidebar (trang archive/blog) ---------- */
.widget-area .widget{
	background:#fff; border:1px solid var(--ms-line); border-radius:8px;
	padding:18px 20px; margin-bottom:24px; box-shadow:var(--ms-shadow);
}
.widget-area .widget .widget-title,
.widget-area .widget h2,
.widget-area .widget h3{ font-size:1.05rem; margin:0 0 14px; color:var(--ms-ink); }
.widget-area .widget ul{ list-style:none; margin:0; padding:0; }
.widget-area .widget li{ padding:7px 0; border-bottom:1px solid var(--ms-soft); }
.widget-area .widget li:last-child{ border-bottom:0; }
.widget-area .widget li a{ color:var(--ms-body); font-weight:500; }
.widget-area .widget li a:hover{ color:var(--ms-primary); }
.widget-area .wp-block-search__input{ border:1px solid var(--ms-line); border-radius:8px; padding:9px 12px; }
.widget-area .wp-block-search__button{ background:var(--ms-primary); color:#fff; border:0; border-radius:8px; padding:0 16px; font-weight:600; }
.widget-area .wp-block-latest-posts__post-date{ display:block; font-size:.78rem; color:var(--ms-muted); margin-top:2px; }
.is-right-sidebar .inside-right-sidebar{ position:sticky; top:92px; }
/* ô quảng cáo trong sidebar — bỏ khung card */
.widget-area .widget:has(.ms-ad-zone),
.widget-area #block-11{ background:transparent !important; border:0 !important; box-shadow:none !important; padding:0 !important; }
.widget-area .ms-ad-zone{ margin:0 0 24px; }
.widget-area .ms-ad-ph-box{ min-height:250px; }

/* ---------- Ad zones ---------- */
.ms-ad-zone{ margin:30px auto; text-align:center; }
.ms-ad-zone::before{ content:"Quảng cáo"; display:block; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ms-muted); margin-bottom:6px; }
.ms-ad-zone .ms-ad-slot{ display:block; width:100%; max-width:100%; }
.ms-ad-zone .ms-ad-slot img,
.ms-ad-zone .ms-ad-slot iframe,
.ms-ad-zone .ms-ad-slot ins,
.ms-ad-zone .ms-ad-slot .adsbygoogle{ max-width:100% !important; height:auto; }
.ms-ad-leaderboard-wrap{ background:var(--ms-soft); border-block:1px solid var(--ms-line); padding:12px 0; }
.ms-ad-leaderboard-wrap .ms-ad-zone{ margin:0 auto; }
.ms-ad-after{ border-top:1px solid var(--ms-line); padding-top:18px; }
/* placeholder = đúng kích cỡ ad thật */
.ms-ad-ph{ display:flex; align-items:center; justify-content:center; width:100%; box-sizing:border-box; border:2px dashed #CBD9F5; border-radius:8px; background:#fff; color:var(--ms-muted); font-weight:600; font-size:.82rem; }
.ms-ad-fluid-sm{ min-height:90px; }
.ms-ad-fluid-md{ min-height:250px; }

/* ---------- Responsive ---------- */
@media (max-width:768px){
	.msedu-hero{ padding:46px 20px; border-radius:8px; }
	.msedu-hero h1{ font-size:2rem; }
	.msedu-hero p{ font-size:1.05rem; }
	.entry-header .entry-title{ font-size:1.4rem; }
	.wp-block-query .wp-block-post-template{ grid-template-columns:1fr !important; }
	.ms-footer-cols{ grid-template-columns:1fr 1fr; gap:30px 24px; }
	.ms-footer-brand{ grid-column:1 / -1; }
}
@media (max-width:480px){
	.ms-footer-cols{ grid-template-columns:1fr; }
}
@media (min-width:641px) and (max-width:1024px){
	.wp-block-query .wp-block-post-template{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
}

/* ===== Tuỳ chọn "Viền gọn nhẹ" cho bảng (class qfe-tbl-clean) — đồng bộ với chế độ sửa nhanh ===== */
.entry-content .wp-block-table.qfe-tbl-clean table{ border-collapse:collapse; width:100%; border:0; background:transparent; }
.entry-content .wp-block-table.qfe-tbl-clean th,
.entry-content .wp-block-table.qfe-tbl-clean td{ border:0; border-bottom:1px solid var(--ms-line); padding:12px 16px; }
.entry-content .wp-block-table.qfe-tbl-clean thead th{ border-bottom:2px solid #D5DBE3; font-weight:600; color:var(--ms-ink); background:transparent; }
.entry-content .wp-block-table.qfe-tbl-clean tbody tr:last-child td{ border-bottom:2px solid #D5DBE3; } /* đường đáy đối xứng với header → bảng khép kín, không lửng lơ */
.entry-content .wp-block-table.qfe-tbl-clean tbody tr:hover td{ background:#FAFBFC; }
.entry-content .wp-block-table.qfe-tbl-clean.is-style-stripes tbody tr:nth-child(odd) td{ background:#F6F8FA; }
.entry-content .wp-block-table.qfe-tbl-clean.is-style-stripes tbody tr:hover td{ background:#EEF2F7; }
.entry-content .wp-block-table.qfe-tbl-clean thead{ border-bottom:0; } /* triệt đường 3px đậm của core */

/* ===== Bảng full-lưới (mặc định, KHÔNG qfe-tbl-clean): viền đầy đủ + header nền nhạt — đồng bộ editor.
   Core để border-color trong suốt → phải set màu viền rõ. ===== */
.entry-content .wp-block-table:not(.qfe-tbl-clean) table{ border-collapse:collapse; width:100%; }
.entry-content .wp-block-table:not(.qfe-tbl-clean) th,
.entry-content .wp-block-table:not(.qfe-tbl-clean) td{ border:1px solid #CBD5E1; padding:12px 16px; }
.entry-content .wp-block-table:not(.qfe-tbl-clean) thead th{ background:#F1F5FD; color:var(--ms-ink); font-weight:600; }
.entry-content .wp-block-table:not(.qfe-tbl-clean) thead{ border-bottom:0; } /* triệt đường 3px đen của core */
.entry-content .wp-block-table:not(.qfe-tbl-clean) tbody tr:hover td{ background:#FAFBFC; }
.entry-content .wp-block-table:not(.qfe-tbl-clean).is-style-stripes tbody tr:nth-child(odd) td{ background:#F6F8FA; }
.entry-content .wp-block-table:not(.qfe-tbl-clean).is-style-stripes tbody tr:hover td{ background:#EEF2F7; }
/* Header bảng căn trái mặc định (thẳng hàng với dữ liệu) — chừa cột người dùng tự căn (.has-text-align-*). */
.entry-content .wp-block-table th:not([class*="has-text-align"]){ text-align:left; }

/* Đường kẻ (separator) mặc định: 1px nhạt thay vì 2px xám đậm — chừa kiểu chấm. */
.entry-content hr.wp-block-separator:not(.is-style-dots){ border:0; border-top:1px solid var(--ms-line); background:transparent; opacity:1; height:0; }

/* Tiêu đề accordion đậm hơn để rõ là vùng bấm được (mặc định core là 400). */
.entry-content .wp-block-details > summary{ font-weight:600; }
/* ===== Kiểu Accordion (class qfe-acc-*) — đồng bộ với chế độ sửa nhanh ===== */
.entry-content .wp-block-details.qfe-acc-box{ border:1px solid #E2E8F0; border-radius:8px; padding:0; overflow:hidden; }
.entry-content .wp-block-details.qfe-acc-box > summary{ background:#F8FAFC; padding:14px 16px; font-weight:600; }
.entry-content .wp-block-details.qfe-acc-box > *:not(summary){ padding-left:16px; padding-right:16px; }
/* List con trong accordion box: cộng thêm thụt lề bullet (rule trên đè mất 1.7em mặc định của list). */
.entry-content .wp-block-details.qfe-acc-box > ul,
.entry-content .wp-block-details.qfe-acc-box > ol{ padding-left:calc(16px + 1.6em); }
.entry-content .wp-block-details.qfe-acc-box > *:last-child{ padding-bottom:14px; }
.entry-content .wp-block-details.qfe-acc-box[open] > summary{ border-bottom:1px solid #E2E8F0; margin-bottom:12px; }
/* Nhiều accordion box LIỀN NHAU → gộp thành 1 danh sách liền mạch (FAQ): khử khoảng cách, gộp viền chung, chỉ bo góc ngoài cùng. */
.entry-content .wp-block-details.qfe-acc-box:has(+ .wp-block-details.qfe-acc-box){ margin-bottom:0; border-bottom-left-radius:0; border-bottom-right-radius:0; }
.entry-content .wp-block-details.qfe-acc-box + .wp-block-details.qfe-acc-box{ margin-top:-1px; border-top-left-radius:0; border-top-right-radius:0; }
.entry-content .wp-block-details.qfe-acc-fill{ border:0; background:#F4F6F9; border-radius:8px; padding:14px 16px; }
.entry-content .wp-block-details.qfe-acc-fill > summary{ font-weight:600; }
.entry-content .wp-block-details.qfe-acc-color{ border:0; border-left:4px solid; border-radius:0 8px 8px 0; padding:14px 16px; }
.entry-content .wp-block-details.qfe-acc-color > summary{ font-weight:600; }
.entry-content .wp-block-details.qfe-acc-success{ border-left-color:#16A34A; background:#F0FAF4; }
.entry-content .wp-block-details.qfe-acc-info{ border-left-color:#2F6BFF; background:#EFF5FF; }
.entry-content .wp-block-details.qfe-acc-warning{ border-left-color:#F59E0B; background:#FFF8EC; }
.entry-content .wp-block-details.qfe-acc-danger{ border-left-color:#EF4444; background:#FEF2F2; }
.entry-content .wp-block-details.qfe-acc-plus > summary{ list-style:none; display:flex; align-items:center; justify-content:space-between; gap:12px; cursor:pointer; }
.entry-content .wp-block-details.qfe-acc-plus > summary::-webkit-details-marker{ display:none; }
/* Dấu +/− BÊN PHẢI (như vị trí chevron). + khi đóng → − (U+2212) khi mở. */
.entry-content .wp-block-details.qfe-acc-plus > summary::after{ content:"+"; flex:0 0 auto; width:1em; text-align:center; font-size:1.3em; font-weight:400; line-height:1; opacity:.5; }
.entry-content .wp-block-details.qfe-acc-plus[open] > summary::after{ content:"\2212"; }

/* ===== Khối File: đồng bộ brand (core mặc định là nút đen bo tròn pill) ===== */
.entry-content .wp-block-file{ display:inline-flex; align-items:center; gap:18px; flex-wrap:wrap; width:fit-content; max-width:100%; background:#F8FAFC; border:1px solid var(--ms-line); border-radius:8px; padding:12px 16px; margin:1.6em 0; }
/* Mặc định chỉ có nút (không tên tệp) → bỏ khung chip, nút đứng riêng. */
.entry-content .wp-block-file:not(:has(> a:not(.wp-block-file__button))){ background:transparent; border:0; padding:0; }
.entry-content .wp-block-file > a:not(.wp-block-file__button){ display:inline-flex; align-items:center; gap:9px; font-weight:600; color:var(--ms-ink); }
.entry-content .wp-block-file > a:not(.wp-block-file__button):hover{ color:var(--ms-primary); }
/* Icon tài liệu trước tên tệp (mặc định) */
.entry-content .wp-block-file > a:not(.wp-block-file__button)::before{ content:""; flex:0 0 auto; width:1.25em; height:1.25em; background:var(--ms-primary); -webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M6%202a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8l-6-6H6zm7%201.5L18.5%209H13V3.5z'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M6%202a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8l-6-6H6zm7%201.5L18.5%209H13V3.5z'/%3E%3C/svg%3E") center/contain no-repeat; }
/* Nút tải: kiểu nhẹ (outline) thay vì xanh đặc — vẫn rõ là CTA */
.entry-content .wp-block-file__button{ display:inline-flex; align-items:center; background:#fff; color:var(--ms-primary); border:1px solid #C7D7F5; border-radius:8px; padding:7px 15px; font-weight:600; font-size:.9rem; box-shadow:none; margin:0; }
.entry-content .wp-block-file__button:hover{ background:#EEF3FF; color:var(--ms-primary); opacity:1; }

/* ===== Accordion: chevron tự xoay thay tam giác ▶ mặc định (trừ kiểu +/−) ===== */
.entry-content .wp-block-details:not(.qfe-acc-plus) > summary{ list-style:none; display:flex; align-items:center; justify-content:space-between; gap:12px; cursor:pointer; }
.entry-content .wp-block-details:not(.qfe-acc-plus) > summary::-webkit-details-marker{ display:none; }
.entry-content .wp-block-details:not(.qfe-acc-plus) > summary::after{ content:""; flex:0 0 auto; width:9px; height:9px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg) translateY(-2px); opacity:.5; transition:transform .2s ease; }
.entry-content .wp-block-details:not(.qfe-acc-plus)[open] > summary::after{ transform:rotate(-135deg); }

/* Icon tải xuống trong nút File — MẶC ĐỊNH cho mọi khối (trước đây chỉ khi bật qfe-file-dlicon). */
.entry-content .wp-block-file__button::before{ content:""; display:inline-block; width:1em; height:1em; margin-right:.45em; vertical-align:-0.13em; background:currentColor; -webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M5%2020h14v-2H5v2zM19%209h-4V3H9v6H5l7%207%207-7z'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M5%2020h14v-2H5v2zM19%209h-4V3H9v6H5l7%207%207-7z'/%3E%3C/svg%3E") center/contain no-repeat; }

/* Reset margin <p> nội dung accordion có kiểu (tránh thừa đáy hộp do margin theme bị bao kín) */
.entry-content .wp-block-details.qfe-acc-box > p,
.entry-content .wp-block-details.qfe-acc-fill > p,
.entry-content .wp-block-details.qfe-acc-color > p{ margin:0; }

/* ===== Callout: tuỳ chọn kiểu viền / icon / ẩn tiêu đề (class qfe-co-*) — đồng bộ chế độ sửa nhanh ===== */
.entry-content .msedu-alert.qfe-co-line{ background:transparent; }
.entry-content .msedu-alert.qfe-co-box{ border:1.5px solid; border-radius:8px; }
.entry-content .msedu-alert.qfe-co-notitle p:first-child{ display:none; }
.entry-content .msedu-alert.qfe-co-notitle p:first-child + p{ display:block; }
.entry-content .msedu-alert.qfe-co-notitle p:first-child::after{ content:none; }
.entry-content .msedu-alert.qfe-co-ic-bulb p:first-child::before{ content:"💡 "; }
.entry-content .msedu-alert.qfe-co-ic-info p:first-child::before{ content:"ℹ️ "; }
.entry-content .msedu-alert.qfe-co-ic-warn p:first-child::before{ content:"⚠️ "; }
.entry-content .msedu-alert.qfe-co-ic-ok p:first-child::before{ content:"✅ "; }
.entry-content .msedu-alert.qfe-co-ic-pin p:first-child::before{ content:"📌 "; }
.entry-content .msedu-alert.qfe-co-ic-none p:first-child::before{ content:none; }

/* ============================================================
   Lộ trình học theo Seri (ms-lotrinh.php)
   ============================================================ */
/* Hộp lộ trình trên bài viết */
.ms-seri-box{ border:1px solid var(--ms-line); border-left:4px solid var(--ms-primary); border-radius:8px; background:var(--ms-soft); margin:22px 0 30px; overflow:hidden; }
.ms-seri-head{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:13px 18px; cursor:pointer; }
.ms-seri-label{ display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:.82rem; text-transform:uppercase; letter-spacing:.04em; color:var(--ms-primary); }
.ms-seri-name{ font-weight:700; color:var(--ms-ink); font-size:1.02rem; line-height:1.3; }
.ms-seri-name:hover{ color:var(--ms-primary); }
.ms-seri-count{ margin-left:auto; font-size:.82rem; font-weight:600; color:var(--ms-muted); background:#fff; border:1px solid var(--ms-line); border-radius:6px; padding:3px 12px; white-space:nowrap; }
.ms-seri-toggle{ border:0; background:none; cursor:pointer; font-size:1rem; color:var(--ms-muted); padding:2px 4px; line-height:1; transition:transform .2s ease; }
.ms-seri-box.collapsed .ms-seri-toggle{ transform:rotate(-90deg); }
.ms-seri-parts{ list-style:none; margin:0; padding:4px 18px 16px; counter-reset:seri; }
.ms-seri-box.collapsed .ms-seri-parts{ display:none; }
.ms-seri-part{ counter-increment:seri; position:relative; padding:7px 0 7px 36px; line-height:1.45; border-top:1px dashed var(--ms-line); }
.ms-seri-part:first-child{ border-top:0; }
.ms-seri-part::before{ content:counter(seri); position:absolute; left:0; top:6px; width:24px; height:24px; border-radius:50%; background:#fff; border:1px solid var(--ms-line); color:var(--ms-muted); font-size:.78rem; font-weight:700; display:flex; align-items:center; justify-content:center; }
.ms-seri-part a{ color:var(--ms-ink); font-weight:500; }
.ms-seri-part a:hover{ color:var(--ms-primary); }
.ms-seri-part.current{ font-weight:700; }
.ms-seri-part.current span{ color:var(--ms-primary); }
.ms-seri-part.current::before{ background:var(--ms-primary); border-color:var(--ms-primary); color:#fff; }

/* Trang lộ trình (archive taxonomy seri) */
.ms-seri-archive{ margin:0 0 28px; padding:26px 28px; border:1px solid var(--ms-line); border-radius:8px; background:linear-gradient(135deg,var(--ms-soft),#fff); }
.ms-seri-archive-eyebrow{ display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:.8rem; text-transform:uppercase; letter-spacing:.05em; color:var(--ms-primary); }
.ms-seri-archive-title{ margin:.3em 0 .25em; font-size:2rem; line-height:1.2; color:var(--ms-ink); }
.ms-seri-archive-desc{ margin:.2em 0 .6em; color:#475569; font-size:1.02rem; line-height:1.6; max-width:680px; }
.ms-seri-archive-meta{ margin:0; font-size:.85rem; font-weight:600; color:var(--ms-muted); }

/* Card lộ trình ([ms_lo_trinh]) */
.ms-lt-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:18px; margin:8px 0; }
.ms-lt-card{ display:block; padding:22px; border:1px solid var(--ms-line); border-radius:8px; background:#fff; transition:border-color .15s ease; }
.ms-lt-card:hover{ border-color:#9DB9F0; }
.ms-lt-card-icon{ display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:8px; background:var(--ms-soft); color:var(--ms-primary); margin-bottom:12px; }
.ms-lt-card h3{ margin:0 0 6px; font-size:1.1rem; color:var(--ms-ink); }
.ms-lt-card p{ margin:0 0 12px; color:#64748B; font-size:.92rem; line-height:1.55; }
.ms-lt-count{ font-weight:700; font-size:.86rem; color:var(--ms-primary); }

/* ============================================================
   Trang bài viết — nâng cấp pro / docs / technical
   ============================================================ */
/* Thanh tiến độ đọc trên cùng */
#ms-readbar{ position:fixed; top:0; left:0; height:3px; width:0; background:var(--ms-primary); z-index:130; transition:width .08s linear; pointer-events:none; }

/* Mục lục dạng docs trong sidebar phải (dính theo cuộn) */
.single .widget_calendar{ display:none; } /* widget Lịch không phù hợp trang kiến thức */
.msedu-toc-side{ background:transparent !important; border:0 !important; border-radius:0 !important; padding:0 !important; margin:0 0 26px !important; position:sticky; top:70px; max-height:calc(100vh - 96px); overflow-y:auto; }
.msedu-toc-side .ms-toc-head{ cursor:default; margin:0 0 12px; }
.msedu-toc-side .ms-toc-title{ font-size:.72rem !important; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--ms-muted) !important; }
.msedu-toc-side .ms-toc-toggle{ display:none; }
.msedu-toc-side ol{ margin:0; padding:0; border-left:2px solid var(--ms-line); }
.msedu-toc-side li{ counter-increment:none; margin:0; }
.msedu-toc-side a{ display:block; padding:7px 0 7px 16px; margin-left:-2px; border-left:2px solid transparent; color:var(--ms-body); font-size:.9rem; line-height:1.5; transition:color .15s ease, border-color .15s ease; }
.msedu-toc-side a::before{ content:none; }
.msedu-toc-side a:hover{ color:var(--ms-primary); border-left-color:#C7D6F7; }
.msedu-toc-side a.active{ color:var(--ms-primary); font-weight:600; border-left-color:var(--ms-primary); }

/* Inline code kiểu kỹ thuật */
.entry-content :not(pre) > code{ font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,"Liberation Mono",monospace; font-size:.86em; background:#F4F6FA; border:1px solid #E3E9F2; border-radius:6px; padding:.1em .42em; color:var(--ms-primary-dark); }

/* ============================================================
   Trang chủ (front-page.php) — component riêng
   ============================================================ */
/* Gutter 24px để nội dung trang chủ thẳng hàng với footer/header (cùng chuẩn site). */
.ms-home{ padding-left:24px; padding-right:24px; box-sizing:border-box; }
.ms-home > section,
.ms-home > h2,
.ms-home > .ms-topics-grid,
.ms-home > .ms-grid,
.ms-home > p{ max-width:calc(var(--ms-wrap) - 48px); margin-left:auto; margin-right:auto; }
.ms-center{ text-align:center; }
.ms-hero-btns{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:4px; }
.ms-hero-btns .wp-block-button{ margin:0; }

.ms-stats-in{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }

.ms-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; }
.ms-pcard{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--ms-line); border-radius:8px; overflow:hidden; transition:border-color .2s ease; }
.ms-pcard:hover{ border-color:#9DB9F0; }
.ms-pcard-thumb{ display:block; overflow:hidden; }
.ms-pcard-thumb img{ width:100%; aspect-ratio:16/9; object-fit:cover; display:block; transition:transform .4s ease; }
.ms-pcard:hover .ms-pcard-thumb img{ transform:scale(1.05); }
.ms-pcard-body{ display:flex; flex-direction:column; padding:16px 18px 18px; }
.ms-pcard-cat{ font-size:.72rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--ms-primary); margin-bottom:8px; }
.ms-pcard-title{ font-size:1.12rem; line-height:1.4; margin:0 0 10px; }
.ms-pcard-title a{ color:var(--ms-ink); }
.ms-pcard-title a:hover{ color:var(--ms-primary); }
.ms-pcard-excerpt{ margin:0; color:var(--ms-muted); font-size:.93rem; line-height:1.55; }
.ms-more{ margin-top:30px; }
@media (max-width:1024px){ .ms-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:768px){
	.ms-grid{ grid-template-columns:1fr; }
	.ms-stats-in{ grid-template-columns:repeat(2,1fr); gap:24px 12px; }
}
