/*
Theme Name: taomavach.online
Theme URI: https://taomavach.online
Author: taomavach.online
Description: Block theme cho taomavach.online — công cụ tạo mã vạch online miễn phí. Dựng từ thiết kế trong design/ (tokens --tmv-*, 7 template, widget A–E). Font Source Sans 3 và Fira Code nạp nội bộ, không CDN.
Version: 1.0.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: taomavach-theme
*/

/* Token --tmv-* nằm ở assets/css/tmv-tokens.css (nạp trước file này). File này chỉ là layout + thành phần. */

/* ---------- Khung chung ---------- */
body{background:var(--tmv-bg);color:var(--tmv-ink);font-family:var(--tmv-font);font-size:var(--tmv-fs-3);line-height:var(--tmv-lh)}
.wp-site-blocks{display:flex;flex-direction:column;min-height:100vh}
.wp-site-blocks>*{margin:0}
.tmv-main{width:100%;max-width:var(--tmv-content-w);margin:0 auto;padding:var(--tmv-sp-4) var(--tmv-sp-4) var(--tmv-sp-8);flex:1 0 auto;box-sizing:border-box}
.tmv-main-narrow{max-width:900px}
.tmv-main-center{max-width:640px;text-align:center;padding-top:var(--tmv-sp-8)}
.tmv-page-head{max-width:820px;margin:0 0 var(--tmv-sp-5)}
.tmv-page-head h1,.tmv-main h1.wp-block-post-title,.tmv-main h1.wp-block-query-title,.tmv-main h1.wp-block-heading{font-size:var(--tmv-fs-6);line-height:var(--tmv-lh-tight);font-weight:var(--tmv-fw-bold);letter-spacing:-.02em;margin:0 0 var(--tmv-sp-3);text-wrap:pretty}
.tmv-page-head p{margin:0 0 var(--tmv-sp-3);color:var(--tmv-ink-2);text-wrap:pretty}
.tmv-page-head .wp-block-term-description p{margin:0 0 var(--tmv-sp-3)}
.tmv-meta-line{display:flex;flex-wrap:wrap;gap:var(--tmv-sp-2);align-items:center;font-size:var(--tmv-fs-1);color:var(--tmv-ink-3);margin:0 0 var(--tmv-sp-4)}
.tmv-meta-line p,.tmv-meta-line .wp-block-post-date,.tmv-meta-line .wp-block-post-author-name{margin:0;font-size:inherit;color:inherit}
.tmv-meta-line a{color:inherit;text-decoration:none}
.tmv-meta-line .tmv-dot::before{content:"·"}
.tmv-meta-line>*+.wp-block-post-date::before{content:"· ";color:var(--tmv-ink-3)}
.tmv-badge-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--tmv-radius-pill);background:var(--tmv-accent-soft);color:var(--tmv-accent-ink);font-weight:var(--tmv-fw-semibold);font-size:var(--tmv-fs-1)}
.tmv-accent{color:var(--tmv-accent)}
.tmv-section-block{margin-top:var(--tmv-sp-8)}
.tmv-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--tmv-sp-3);flex-wrap:wrap;margin:0 0 var(--tmv-sp-4)}
.tmv-section-head h2{margin:0;font-size:var(--tmv-fs-5);font-weight:var(--tmv-fw-bold);letter-spacing:-.01em}
.tmv-section-head p{margin:0;font-size:var(--tmv-fs-2);font-weight:var(--tmv-fw-semibold)}
.tmv-section-head a{text-decoration:none}
.tmv-section-head a:hover{text-decoration:underline}

/* ---------- Breadcrumb (Rank Math shortcode trong template) ---------- */
.tmv-crumb{margin:var(--tmv-sp-2) 0 var(--tmv-sp-4);font-size:var(--tmv-fs-1);color:var(--tmv-ink-3)}
.tmv-crumb .rank-math-breadcrumb p,.tmv-crumb p{margin:0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tmv-crumb a{color:var(--tmv-ink-3);text-decoration:none}
.tmv-crumb a:hover{color:var(--tmv-accent);text-decoration:underline}
.tmv-crumb .last{color:var(--tmv-ink-2)}
.tmv-crumb .separator{color:var(--tmv-ink-3)}

/* ---------- Header ---------- */
.wp-site-blocks>header.wp-block-template-part,.wp-block-template-part:has(>.tmv-header){position:sticky;top:0;z-index:20}
.tmv-header{background:var(--tmv-surface);border-bottom:1px solid var(--tmv-line)}
.tmv-header-inner{max-width:var(--tmv-content-w);margin:0 auto;padding:0 var(--tmv-sp-4);min-height:60px;display:flex;align-items:center;gap:var(--tmv-sp-5);box-sizing:border-box}
.tmv-logo{display:inline-flex;align-items:center;gap:8px;font-weight:var(--tmv-fw-bold);font-size:var(--tmv-fs-4);letter-spacing:-.02em;color:var(--tmv-ink);text-decoration:none;white-space:nowrap}
.tmv-logo:hover{color:var(--tmv-ink)}
.tmv-logo svg{width:22px;height:22px;flex:none}
.tmv-logo span{color:var(--tmv-accent)}
.tmv-nav{flex:1 1 auto;min-width:0;font-size:var(--tmv-fs-2);font-weight:var(--tmv-fw-semibold)}
.tmv-nav .wp-block-navigation__container{gap:var(--tmv-sp-5)}
.tmv-nav .wp-block-navigation-item__content{color:var(--tmv-ink-2);text-decoration:none;padding:19px 0;border-bottom:2px solid transparent}
.tmv-nav .wp-block-navigation-item__content:hover{color:var(--tmv-ink)}
.tmv-nav .current-menu-item>.wp-block-navigation-item__content,.tmv-nav .current-menu-ancestor>.wp-block-navigation-item__content{color:var(--tmv-ink);border-bottom-color:var(--tmv-accent)}
.tmv-nav .wp-block-navigation__responsive-container-open,.tmv-nav .wp-block-navigation__responsive-container-close{width:44px;height:44px;border-radius:var(--tmv-radius);border:1px solid var(--tmv-line);background:var(--tmv-surface);display:grid;place-items:center;cursor:pointer;color:var(--tmv-ink);padding:0}
.tmv-nav .wp-block-navigation__responsive-container.is-menu-open{background:var(--tmv-surface);padding:var(--tmv-sp-5) var(--tmv-sp-4)}
.tmv-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{padding:10px 0;font-size:var(--tmv-fs-3);border-bottom:0}
.tmv-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{gap:var(--tmv-sp-2)}
.tmv-header-tools{margin-left:auto;display:flex;align-items:center;gap:var(--tmv-sp-2)}
.tmv-search{margin:0}
.tmv-search .wp-block-search__inside-wrapper{gap:6px}
.tmv-search .wp-block-search__button{width:44px;height:44px;padding:0;margin:0;border-radius:var(--tmv-radius);border:1px solid var(--tmv-line);background:var(--tmv-surface);color:var(--tmv-ink);display:grid;place-items:center;cursor:pointer}
.tmv-search .wp-block-search__button svg{width:20px;height:20px;fill:currentColor}
.tmv-search .wp-block-search__input{min-height:44px;padding:0 var(--tmv-sp-3);border:1px solid var(--tmv-line-strong);border-radius:var(--tmv-radius);font:inherit;font-size:var(--tmv-fs-2);background:var(--tmv-surface);color:var(--tmv-ink)}
.tmv-search .wp-block-search__input:focus{border-color:var(--tmv-accent);box-shadow:var(--tmv-focus);outline:none}
.tmv-search.wp-block-search__button-only:not(.wp-block-search__searchfield-hidden) .wp-block-search__inside-wrapper{position:absolute;right:0;top:64px;background:var(--tmv-surface);border:1px solid var(--tmv-line);border-radius:var(--tmv-radius);padding:var(--tmv-sp-2);box-shadow:var(--tmv-shadow);z-index:21}
.tmv-search.wp-block-search__button-only{position:relative}
/* Nav gọn dưới 1200 (7 mục + logo + tìm kiếm không đủ chỗ ở 1024; WP mặc định đổi ở 600) */
@media (max-width:1199px){
  .tmv-header-inner{gap:var(--tmv-sp-3)}
  .tmv-nav{flex:0 0 auto;order:3}
  .tmv-nav .wp-block-navigation__responsive-container:not(.is-menu-open){display:none!important}
  .tmv-nav .wp-block-navigation__responsive-container-open{display:grid!important}
}
@media (min-width:1200px){
  .tmv-nav .wp-block-navigation__responsive-container-open,.tmv-nav .wp-block-navigation__responsive-container-close{display:none!important}
}
@media (max-width:767px){
  .tmv-search.wp-block-search__button-only:not(.wp-block-search__searchfield-hidden) .wp-block-search__inside-wrapper{left:auto;right:0;width:calc(100vw - 32px);max-width:420px}
}

/* ---------- Footer ---------- */
.wp-site-blocks>footer.wp-block-template-part{margin-top:auto}
.tmv-footer{border-top:1px solid var(--tmv-line);background:var(--tmv-surface)}
.tmv-footer-inner{max-width:var(--tmv-content-w);margin:0 auto;padding:var(--tmv-sp-6) var(--tmv-sp-4);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--tmv-sp-5);font-size:var(--tmv-fs-2);box-sizing:border-box}
.tmv-footer-brand p{margin:0}
.tmv-footer-logo{font-weight:var(--tmv-fw-bold);margin:0 0 var(--tmv-sp-2)!important;color:var(--tmv-ink)}
.tmv-footer-tagline{color:var(--tmv-ink-3);text-wrap:pretty}
.tmv-footer-nav{font-size:var(--tmv-fs-2)}
.tmv-footer-nav .wp-block-navigation__container{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px var(--tmv-sp-5)}
.tmv-footer-nav .wp-block-navigation-item__content{color:var(--tmv-ink-2);text-decoration:none}
.tmv-footer-nav .wp-block-navigation-item__content:hover{color:var(--tmv-accent);text-decoration:underline}
.tmv-footer-bottom{border-top:1px solid var(--tmv-line)}
.tmv-footer-bottom p{max-width:var(--tmv-content-w);margin:0 auto;padding:var(--tmv-sp-3) var(--tmv-sp-4);font-size:var(--tmv-fs-1);color:var(--tmv-ink-3);box-sizing:border-box}
@media (max-width:480px){.tmv-footer-nav .wp-block-navigation__container{grid-template-columns:1fr}}

/* ---------- Nội dung (prose) ---------- */
.tmv-prose>h2:first-child,.tmv-prose>.tmv-toc-mobile+h2{margin-top:0;border-top:0;padding-top:0}
.tmv-prose .wp-block-table{margin:0 0 var(--tmv-sp-4)}
.tmv-prose .wp-block-table table{margin:0}
.tmv-prose .wp-block-table figcaption{font-size:var(--tmv-fs-1);color:var(--tmv-ink-3);margin-top:var(--tmv-sp-2)}
.tmv-prose .wp-block-details{border:1px solid var(--tmv-line);border-radius:var(--tmv-radius);background:var(--tmv-surface);padding:0 var(--tmv-sp-4)}
.tmv-prose .wp-block-details+.wp-block-details{margin-top:calc(-1*var(--tmv-sp-4) + var(--tmv-sp-2))}
.tmv-prose .wp-block-image{margin:var(--tmv-sp-5) 0}
.tmv-prose .wp-block-image img{background:#fff}
.tmv-prose .wp-block-image.is-resized img{max-width:100%}
.tmv-prose .wp-block-buttons{margin:0 0 var(--tmv-sp-4)}
.tmv-prose .tmv-source{margin-top:var(--tmv-sp-4)}
.tmv-prose .tmv-source h2{margin:var(--tmv-sp-2) 0 var(--tmv-sp-3);border-top:0;padding-top:0;font-size:var(--tmv-fs-4)}
.tmv-prose .tmv-source ul{margin:0 0 var(--tmv-sp-2)}
.tmv-prose .tmv-source li{margin-bottom:6px}
.tmv-prose .tmv-tool-grid{padding:0;margin:0 0 var(--tmv-sp-5)}
.tmv-prose .tmv-tool-grid li{margin:0}
.tmv-prose .tmv-tool{margin:0 0 var(--tmv-sp-7)}
.tmv-prose .tmv-list,.tmv-prose .tmv-table-block{margin:0 0 var(--tmv-sp-5)}
.tmv-prose>.tmv-tao-ngay{margin:var(--tmv-sp-6) 0}
/* Trang thường (page.html): 1 cột, bảng rộng cuộn ngang */
.tmv-page-content.tmv-prose{max-width:none}
.tmv-page-content.tmv-prose>*:not(.wp-block-table):not(.tmv-table-block):not(.tmv-list):not(.tmv-tool):not(.wp-block-image):not(.tmv-tool-grid){max-width:var(--tmv-prose-w)}
/* Hub: lưới tool + bảng rộng hết cỡ, chữ giữ 72ch */
.tmv-hub-content.tmv-prose{max-width:none}
.tmv-hub-content.tmv-prose>*:not(.tmv-tool-grid):not(.wp-block-table):not(.wp-block-image){max-width:var(--tmv-prose-w)}
.tmv-hub-content.tmv-prose>h2{max-width:none}
.tmv-hub-content .tmv-tool-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:var(--tmv-sp-3)}
/* Trang chủ: widget + lưới 5 nhóm full-width */
.tmv-front-content.tmv-prose{max-width:none}
.tmv-front-content.tmv-prose>*:not(.tmv-tool):not(.tmv-tool-grid):not(.wp-block-table):not(.wp-block-image):not(h3){max-width:820px}
.tmv-front-content.tmv-prose>.tmv-tool+p{color:var(--tmv-ink-2)}
.tmv-front-content.tmv-prose>h2{border-top:0;padding-top:0;margin-top:var(--tmv-sp-6)}
.tmv-front-content.tmv-prose>h3{font-size:var(--tmv-fs-5);font-weight:var(--tmv-fw-bold);letter-spacing:-.01em;margin:var(--tmv-sp-6) 0 var(--tmv-sp-3)}
.tmv-front-content .tmv-tool-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.tmv-front-content .tmv-tool-grid:nth-of-type(2){--tmv-icon:var(--tmv-icon-2d)}
.tmv-front-content .tmv-tool-grid:nth-of-type(3){--tmv-icon:var(--tmv-icon-batch)}
.tmv-front-content .tmv-tool-grid:nth-of-type(4){--tmv-icon:var(--tmv-icon-check)}
.tmv-front-content .tmv-tool-grid:nth-of-type(5){--tmv-icon:var(--tmv-icon-tag)}
@media (max-width:767px){.tmv-front-content .tmv-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- Lưới nội dung + sidebar (tool page, bài viết) ---------- */
.tmv-layout{display:grid;grid-template-columns:minmax(0,1fr) var(--tmv-sidebar-w);gap:var(--tmv-sp-7);align-items:start}
.tmv-body{min-width:0}
.tmv-sidebar{position:sticky;top:80px;display:flex;flex-direction:column;gap:var(--tmv-sp-5)}
.tmv-side-title{margin:0 0 var(--tmv-sp-2);font-size:var(--tmv-fs-1);font-weight:var(--tmv-fw-semibold);color:var(--tmv-ink-3);text-transform:uppercase;letter-spacing:.06em}
.tmv-toc{border-left:2px solid var(--tmv-line);padding-left:var(--tmv-sp-4)}
.tmv-toc ol{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;font-size:var(--tmv-fs-2)}
.tmv-toc a{color:var(--tmv-ink-2);text-decoration:none}
.tmv-toc a:hover{color:var(--tmv-accent)}
.tmv-toc a.is-active{color:var(--tmv-ink);font-weight:var(--tmv-fw-semibold)}
.tmv-toc[hidden]{display:none}
.tmv-side-tools .tmv-tool-grid{grid-template-columns:1fr;margin:0}
.tmv-side-more{margin:var(--tmv-sp-2) 0 0;font-size:var(--tmv-fs-2)}
.tmv-side-more a{text-decoration:none;font-weight:var(--tmv-fw-semibold)}
.tmv-toc-mobile{display:none;border:1px solid var(--tmv-line);border-radius:var(--tmv-radius);background:var(--tmv-surface);padding:0 var(--tmv-sp-4);margin:0 0 var(--tmv-sp-5)}
.tmv-toc-mobile summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;min-height:var(--tmv-control-h-sm);font-weight:var(--tmv-fw-semibold);font-size:var(--tmv-fs-2)}
.tmv-toc-mobile summary::-webkit-details-marker{display:none}
.tmv-toc-mobile summary::after{content:"";width:9px;height:9px;border-right:2px solid var(--tmv-ink-3);border-bottom:2px solid var(--tmv-ink-3);transform:rotate(45deg);margin:0 4px 4px 0;transition:transform .15s}
.tmv-toc-mobile[open] summary::after{transform:rotate(-135deg);margin-bottom:-2px}
.tmv-toc-mobile ol{margin:0 0 var(--tmv-sp-3);padding-left:1.4em;font-size:var(--tmv-fs-2)}
.tmv-toc-mobile li{margin-bottom:4px}
.tmv-toc-mobile[hidden]{display:none}
@media (max-width:1023px){
  .tmv-layout{grid-template-columns:1fr}
  .tmv-sidebar{display:none}
  .tmv-toc-mobile{display:block}
}

/* ---------- Bài viết ---------- */
.tmv-post-head{max-width:var(--tmv-prose-w);margin:0 0 var(--tmv-sp-6)}
.tmv-post-head .wp-block-post-terms{font-size:var(--tmv-fs-1);font-weight:var(--tmv-fw-semibold);text-transform:uppercase;letter-spacing:.06em;margin:0 0 var(--tmv-sp-2)}
.tmv-post-head .wp-block-post-terms a{color:var(--tmv-accent-ink);text-decoration:none}
.tmv-post-head h1{margin:0 0 var(--tmv-sp-3)}
.tmv-author-dot{display:inline-flex;align-items:center;gap:8px}
.tmv-author-dot::before{content:"BT";width:28px;height:28px;border-radius:50%;background:var(--tmv-ink);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:var(--tmv-fw-bold)}
.tmv-tao-ngay{background:var(--tmv-surface);border:1px solid var(--tmv-line);border-left:3px solid var(--tmv-accent);border-radius:var(--tmv-radius);padding:var(--tmv-sp-4);margin:var(--tmv-sp-6) 0}
.tmv-tao-ngay .tmv-tao-ngay-label{margin:0 0 4px;font-size:var(--tmv-fs-1);font-weight:var(--tmv-fw-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--tmv-accent-ink)}
.tmv-tao-ngay h3,.tmv-tao-ngay h2{margin:0 0 var(--tmv-sp-3);font-size:var(--tmv-fs-3);font-weight:var(--tmv-fw-semibold)}
.tmv-tao-ngay .tmv-tool{box-shadow:none;padding:var(--tmv-sp-4);margin:0}

/* ---------- Thẻ bài viết (Query Loop) ---------- */
.tmv-posts{margin:0}
.tmv-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--tmv-sp-4);list-style:none;padding:0;margin:0}
.tmv-cards>li{margin:0;min-width:0}
.tmv-card{display:flex;flex-direction:column;gap:6px;height:100%;padding:var(--tmv-sp-4);border:1px solid var(--tmv-line);border-radius:var(--tmv-radius);background:var(--tmv-surface);box-sizing:border-box}
.tmv-card:hover{border-color:var(--tmv-ink)}
.tmv-card .wp-block-post-terms{font-size:var(--tmv-fs-1);font-weight:var(--tmv-fw-semibold);margin:0}
.tmv-card .wp-block-post-terms a{color:var(--tmv-accent-ink);text-decoration:none}
.tmv-card .wp-block-post-title{margin:0;font-size:var(--tmv-fs-3);font-weight:var(--tmv-fw-semibold);line-height:1.3;text-wrap:pretty}
.tmv-card .wp-block-post-title a{color:var(--tmv-ink);text-decoration:none}
.tmv-card .wp-block-post-title a:hover{color:var(--tmv-accent)}
.tmv-card .wp-block-post-excerpt{margin:0;font-size:var(--tmv-fs-2);color:var(--tmv-ink-2)}
.tmv-card .wp-block-post-excerpt p{margin:0;text-wrap:pretty}
.tmv-card .wp-block-post-excerpt__more-link{display:none}
.tmv-card .wp-block-post-date{margin-top:auto;padding-top:var(--tmv-sp-2);font-size:var(--tmv-fs-1);color:var(--tmv-ink-3)}
.tmv-card .wp-block-post-date a{color:inherit;text-decoration:none}
.wp-block-query-no-results p{color:var(--tmv-ink-3);padding:var(--tmv-sp-4);border:1px dashed var(--tmv-line-strong);border-radius:var(--tmv-radius);text-align:center}
@media (max-width:1023px){.tmv-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){.tmv-cards{grid-template-columns:1fr}}

/* Chip chuyên mục (block Categories) */
.tmv-chips-row{display:flex;flex-wrap:wrap;gap:var(--tmv-sp-2);align-items:center;margin:0 0 var(--tmv-sp-5)}
.tmv-chips-row p{margin:0}
.tmv-chip-link,.tmv-cat-chips li a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:var(--tmv-radius-pill);border:1px solid var(--tmv-line);background:var(--tmv-surface);color:var(--tmv-ink);font-size:var(--tmv-fs-2);font-weight:var(--tmv-fw-semibold);text-decoration:none}
.tmv-chip-link:hover,.tmv-cat-chips li a:hover{border-color:var(--tmv-ink)}
.tmv-cat-chips{margin:0}
.tmv-cat-chips ul,ul.tmv-cat-chips{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--tmv-sp-2)}
.tmv-cat-chips li{margin:0}
.tmv-cat-chips li.current-cat>a,.blog .tmv-chip-all{background:var(--tmv-ink);border-color:var(--tmv-ink);color:#fff}
.tmv-count{font-size:var(--tmv-fs-2);color:var(--tmv-ink-3);margin:0 0 var(--tmv-sp-3)}

/* Phân trang */
.wp-block-query-pagination{display:flex;gap:var(--tmv-sp-2);justify-content:center;flex-wrap:wrap;margin:var(--tmv-sp-6) 0 0;font-size:var(--tmv-fs-2)}
.wp-block-query-pagination a,.wp-block-query-pagination .page-numbers{min-width:44px;min-height:44px;display:inline-grid;place-items:center;padding:0 var(--tmv-sp-3);border-radius:var(--tmv-radius);border:1px solid var(--tmv-line);background:var(--tmv-surface);color:var(--tmv-ink);text-decoration:none;font-weight:var(--tmv-fw-semibold)}
.wp-block-query-pagination .page-numbers.current{background:var(--tmv-ink);border-color:var(--tmv-ink);color:#fff}
.wp-block-query-pagination .page-numbers.dots{border:0;background:none}
.wp-block-query-pagination-numbers{display:flex;gap:var(--tmv-sp-2)}

/* ---------- Tìm kiếm / 404 ---------- */
.tmv-search-form{display:flex;gap:var(--tmv-sp-2);margin:0 0 var(--tmv-sp-5)}
.tmv-search-form .wp-block-search__inside-wrapper{display:flex;gap:var(--tmv-sp-2);width:100%}
.tmv-search-form .wp-block-search__input{flex:1;min-height:var(--tmv-control-h);padding:0 var(--tmv-sp-3);border:1px solid var(--tmv-line-strong);border-radius:var(--tmv-radius);font:inherit;background:var(--tmv-surface);color:var(--tmv-ink)}
.tmv-search-form .wp-block-search__input:focus{border-color:var(--tmv-accent);box-shadow:var(--tmv-focus);outline:none}
.tmv-search-form .wp-block-search__button{min-height:var(--tmv-control-h);padding:0 var(--tmv-sp-4);border-radius:var(--tmv-radius);border:1px solid var(--tmv-primary);background:var(--tmv-primary);color:#fff;font:inherit;font-weight:var(--tmv-fw-semibold);cursor:pointer;margin:0}
.tmv-404-box{background:#fff;border:1px solid var(--tmv-result-line);border-radius:var(--tmv-radius);padding:var(--tmv-sp-4) var(--tmv-sp-5);display:inline-block;margin:0 0 var(--tmv-sp-5)}
.tmv-404-box svg{display:block;width:100%;max-width:320px;height:auto}
.tmv-404-box svg text{font-family:var(--tmv-font-mono)}
.tmv-main-center p{color:var(--tmv-ink-2)}
.tmv-quick-links{display:flex;gap:var(--tmv-sp-2);flex-wrap:wrap;justify-content:center;margin:0}
.tmv-quick-links a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:var(--tmv-radius-pill);border:1px solid var(--tmv-line);background:var(--tmv-surface);font-size:var(--tmv-fs-2);font-weight:var(--tmv-fw-semibold);color:var(--tmv-ink);text-decoration:none}
.tmv-quick-links a:hover{border-color:var(--tmv-ink)}

/* ---------- Hộp Cập nhật 2026 (pattern) ---------- */
.tmv-update-box{background:var(--tmv-source-bg);border:1px solid var(--tmv-source-line);border-radius:var(--tmv-radius);padding:var(--tmv-sp-5);margin:var(--tmv-sp-6) 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--tmv-sp-4)}
.tmv-update-box .tmv-update-head{grid-column:1/-1;display:flex;gap:var(--tmv-sp-3);align-items:center;flex-wrap:wrap}
.tmv-update-box h2{margin:0;font-size:var(--tmv-fs-4);font-weight:var(--tmv-fw-bold);border:0;padding:0}
.tmv-update-box p{margin:0;font-size:var(--tmv-fs-2);color:var(--tmv-ink-2);max-width:none}
.tmv-update-box p strong{color:var(--tmv-ink)}

/* ---------- Pattern lưới 5 nhóm ---------- */
.tmv-hub-blocks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--tmv-sp-5);margin:0 0 var(--tmv-sp-6)}
.tmv-hub-blocks>.tmv-hub-block:first-child{grid-column:1/-1}
.tmv-hub-block h2{margin:0 0 var(--tmv-sp-3);font-size:var(--tmv-fs-5);border:0;padding:0}
@media (max-width:767px){.tmv-hub-blocks{grid-template-columns:1fr}}

/* ---------- Tiện ích ---------- */
.tmv-hide-sm,.tmv-hide-md,.tmv-only-sm,.tmv-only-md{}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
html{scroll-behavior:smooth;scroll-padding-top:80px}
@media print{.tmv-header,.tmv-footer,.tmv-sidebar,.tmv-toc-mobile,.tmv-crumb{display:none!important}.tmv-layout{grid-template-columns:1fr}}
