/* Minification failed. Returning unminified contents.
(5,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(8,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(9,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(10,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(11,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(12,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(14,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(15,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(16,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(17,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(18,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(19,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(20,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(21,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(22,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(23,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(24,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(25,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(26,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(27,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(28,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(29,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(38,22): run-time error CSS1039: Token not allowed after unary operator: '-b0-bg'
(39,17): run-time error CSS1039: Token not allowed after unary operator: '-b0-text'
(46,8): run-time error CSS1030: Expected identifier, found '.'
(46,13): run-time error CSS1031: Expected selector, found ')'
(46,13): run-time error CSS1025: Expected comma or open brace, found ')'
(47,8): run-time error CSS1030: Expected identifier, found '.'
(47,19): run-time error CSS1031: Expected selector, found ')'
(47,19): run-time error CSS1025: Expected comma or open brace, found ')'
(49,49): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(51,46): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(54,28): run-time error CSS1039: Token not allowed after unary operator: '-b0-wrap'
(59,33): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(60,43): run-time error CSS1039: Token not allowed after unary operator: '-b0-red-dark'
(61,48): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(61,78): run-time error CSS1039: Token not allowed after unary operator: '-b0-line-2'
(62,47): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(63,34): run-time error CSS1039: Token not allowed after unary operator: '-b0-test'
(64,35): run-time error CSS1039: Token not allowed after unary operator: '-b0-learn'
(65,35): run-time error CSS1039: Token not allowed after unary operator: '-b0-class'
(68,112): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(73,52): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(74,59): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(75,35): run-time error CSS1039: Token not allowed after unary operator: '-b0-red-dark'
(78,31): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(90,62): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(95,106): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(101,68): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(102,75): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(103,157): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(106,44): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-soft'
(107,100): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(107,204): run-time error CSS1039: Token not allowed after unary operator: '-b0-text'
(116,92): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(116,218): run-time error CSS1039: Token not allowed after unary operator: '-b0-text'
(118,142): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(120,47): run-time error CSS1039: Token not allowed after unary operator: '-b0-bg'
(125,58): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(127,35): run-time error CSS1039: Token not allowed after unary operator: '-b0-class-soft'
(132,60): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(135,95): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-soft'
(135,123): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(137,66): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(138,37): run-time error CSS1039: Token not allowed after unary operator: '-b0-text'
(142,55): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(143,84): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(145,28): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(146,115): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-muted'
(147,77): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-2'
(151,46): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-muted'
(154,34): run-time error CSS1039: Token not allowed after unary operator: '-b0-test'
(155,35): run-time error CSS1039: Token not allowed after unary operator: '-b0-learn'
(156,35): run-time error CSS1039: Token not allowed after unary operator: '-b0-class'
(157,33): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(158,140): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-line'
(158,185): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-muted'
(163,28): run-time error CSS1039: Token not allowed after unary operator: '-b0-red-soft'
(165,168): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(167,162): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(169,71): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(170,69): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(177,45): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(179,53): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(180,35): run-time error CSS1039: Token not allowed after unary operator: '-b0-dark'
(180,78): run-time error CSS1039: Token not allowed after unary operator: '-b0-dark'
(181,120): run-time error CSS1039: Token not allowed after unary operator: '-b0-learn'
(186,53): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(187,101): run-time error CSS1039: Token not allowed after unary operator: '-b0-dark-muted'
(190,38): run-time error CSS1039: Token not allowed after unary operator: '-b0-test-soft'
(190,66): run-time error CSS1039: Token not allowed after unary operator: '-b0-test'
(191,55): run-time error CSS1039: Token not allowed after unary operator: '-b0-learn-2'
(192,39): run-time error CSS1039: Token not allowed after unary operator: '-b0-class-soft'
(192,68): run-time error CSS1039: Token not allowed after unary operator: '-b0-class'
(193,43): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(197,40): run-time error CSS1039: Token not allowed after unary operator: '-b0-test'
(198,41): run-time error CSS1039: Token not allowed after unary operator: '-b0-learn-2'
(199,41): run-time error CSS1039: Token not allowed after unary operator: '-b0-class'
(201,48): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(203,32): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-soft'
(203,207): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(210,56): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(211,80): run-time error CSS1039: Token not allowed after unary operator: '-b0-bg'
(214,67): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(215,65): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(218,52): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(219,68): run-time error CSS1039: Token not allowed after unary operator: '-b0-class'
(220,58): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(221,58): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(223,140): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(225,168): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(228,49): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-muted'
(232,57): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(232,98): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(235,45): run-time error CSS1039: Token not allowed after unary operator: '-b0-class'
(237,72): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(240,125): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(241,55): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(242,97): run-time error CSS1039: Token not allowed after unary operator: '-b0-red-soft'
(242,124): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(244,64): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(248,70): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(249,44): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(250,99): run-time error CSS1039: Token not allowed after unary operator: '-b0-red-soft'
(250,126): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(252,49): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(253,48): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(257,61): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(258,74): run-time error CSS1039: Token not allowed after unary operator: '-b0-bg'
(261,46): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(263,39): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(264,43): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(266,56): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(268,48): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(270,45): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(272,42): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(279,65): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(280,82): run-time error CSS1039: Token not allowed after unary operator: '-b0-text'
(284,43): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(285,42): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(287,60): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(288,121): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(290,67): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(292,94): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(293,33): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(299,36): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(301,27): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-muted'
(303,48): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(321,47): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(323,34): run-time error CSS1039: Token not allowed after unary operator: '-b0-zalo'
(330,61): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(332,106): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(334,32): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(335,38): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(336,41): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(339,66): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(343,193): run-time error CSS1039: Token not allowed after unary operator: '-b0-line-2'
(343,218): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(344,44): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(344,66): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(345,50): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(345,79): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(357,57): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(358,54): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(359,51): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(366,72): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(368,38): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(369,39): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(374,53): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(375,106): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-soft'
(377,104): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(380,68): run-time error CSS1039: Token not allowed after unary operator: '-b0-red-soft'
(380,95): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(382,39): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(383,64): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(384,154): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(385,41): run-time error CSS1039: Token not allowed after unary operator: '-b0-red-dark'
(389,32): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(390,76): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(394,36): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-muted'
(395,40): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(398,66): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-muted'
(403,231): run-time error CSS1039: Token not allowed after unary operator: '-b0-line-2'
(403,256): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(405,44): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(406,50): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(406,80): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(409,32): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(412,121): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-muted'
(414,46): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-muted'
(418,58): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(420,33): run-time error CSS1039: Token not allowed after unary operator: '-b0-bg'
(420,54): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(421,63): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(425,60): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(426,44): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(427,214): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(429,39): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(433,91): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(434,33): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(437,60): run-time error CSS1039: Token not allowed after unary operator: '-b0-text'
(440,83): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(444,27): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(445,37): run-time error CSS1039: Token not allowed after unary operator: '-b0-red-dark'
(448,53): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(449,88): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(449,115): run-time error CSS1039: Token not allowed after unary operator: '-b0-bg'
(449,166): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(451,53): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(452,33): run-time error CSS1039: Token not allowed after unary operator: '-b0-bg'
(452,54): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(471,106): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(473,43): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(479,88): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(480,37): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(482,42): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(483,60): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(543,109): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(543,132): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(544,50): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(556,48): run-time error CSS1039: Token not allowed after unary operator: '-b0-red-dark'
(562,142): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(564,111): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(564,134): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(565,64): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(565,99): run-time error CSS1039: Token not allowed after unary operator: '-b0-line-2'
(566,72): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(566,106): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(569,112): run-time error CSS1039: Token not allowed after unary operator: '-b0-line-2'
(569,155): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(570,70): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(570,93): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(571,70): run-time error CSS1039: Token not allowed after unary operator: '-b0-class'
(576,78): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(581,75): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(581,124): run-time error CSS1039: Token not allowed after unary operator: '-b0-bg'
(582,213): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(584,65): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(589,50): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(589,169): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-soft'
(592,151): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(593,97): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(594,57): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(598,195): run-time error CSS1039: Token not allowed after unary operator: '-b0-bg'
(599,120): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(600,55): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(641,85): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(642,48): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(644,93): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(644,127): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(650,174): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(651,117): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(652,78): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(655,88): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(655,129): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(658,82): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(660,48): run-time error CSS1039: Token not allowed after unary operator: '-b0-bg'
(660,80): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(661,137): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(664,105): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(665,78): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(666,119): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(669,69): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(670,186): run-time error CSS1039: Token not allowed after unary operator: '-b0-text'
(672,107): run-time error CSS1039: Token not allowed after unary operator: '-b0-red-soft'
(672,134): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(674,68): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(675,63): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(676,69): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(703,56): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(706,51): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(707,52): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(707,137): run-time error CSS1039: Token not allowed after unary operator: '-b0-line-2'
(708,58): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(709,43): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(713,66): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(714,96): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(718,62): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(719,79): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(720,164): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(720,205): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(722,59): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(723,88): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(725,53): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(727,59): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(728,76): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(729,177): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-soft'
(729,216): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(729,256): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(730,64): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(734,68): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(735,98): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(736,76): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(737,113): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(738,52): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(765,45): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(768,64): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(769,46): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(771,63): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-muted'
(774,52): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(775,81): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(777,149): run-time error CSS1039: Token not allowed after unary operator: '-b0-bg'
(777,207): run-time error CSS1039: Token not allowed after unary operator: '-b0-text'
(778,55): run-time error CSS1039: Token not allowed after unary operator: '-b0-red-soft'
(778,82): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(779,111): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(782,45): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(783,51): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-2'
(784,172): run-time error CSS1039: Token not allowed after unary operator: '-b0-test'
(787,37): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(793,43): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(794,45): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(795,128): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(796,46): run-time error CSS1039: Token not allowed after unary operator: '-b0-red-dark'
(799,122): run-time error CSS1039: Token not allowed after unary operator: '-b0-text'
(801,44): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(802,63): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(806,71): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(807,132): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-soft'
(809,66): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(810,84): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(811,145): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(812,55): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(836,49): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(839,56): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(840,41): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(844,88): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(845,128): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-soft'
(847,88): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(848,58): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(849,138): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(854,86): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(855,119): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-soft'
(858,89): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(859,56): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(860,68): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(861,175): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(862,51): run-time error CSS1039: Token not allowed after unary operator: '-b0-red-dark'
(865,89): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(865,130): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(867,67): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(870,92): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(871,59): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(872,89): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(873,68): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(874,49): run-time error CSS1039: Token not allowed after unary operator: '-b0-bg'
(874,81): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(877,87): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(878,57): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(879,94): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(912,16): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(912,36): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(915,68): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(916,136): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(917,155): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(918,52): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(919,56): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(919,92): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(925,146): run-time error CSS1039: Token not allowed after unary operator: '-qd-soft'
(929,81): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(931,101): run-time error CSS1039: Token not allowed after unary operator: '-b0-line-2'
(931,197): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(933,70): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(933,108): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-soft'
(935,80): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(936,57): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(937,107): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(938,47): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(941,44): run-time error CSS1039: Token not allowed after unary operator: '-qd-soft'
(941,82): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(942,79): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(947,68): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(954,61): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(955,57): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(956,75): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(957,58): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(959,57): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(961,144): run-time error CSS1039: Token not allowed after unary operator: '-b0-class-soft'
(961,173): run-time error CSS1039: Token not allowed after unary operator: '-b0-class'
(962,47): run-time error CSS1039: Token not allowed after unary operator: '-b0-test-soft'
(962,75): run-time error CSS1039: Token not allowed after unary operator: '-b0-test'
(964,43): run-time error CSS1039: Token not allowed after unary operator: '-b0-class-soft'
(964,72): run-time error CSS1039: Token not allowed after unary operator: '-b0-class'
(965,43): run-time error CSS1039: Token not allowed after unary operator: '-b0-red-soft'
(965,70): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(966,88): run-time error CSS1039: Token not allowed after unary operator: '-b0-line-2'
(966,202): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(967,55): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(969,52): run-time error CSS1039: Token not allowed after unary operator: '-qd-soft'
(970,113): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(971,55): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(972,40): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(975,101): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(975,158): run-time error CSS1039: Token not allowed after unary operator: '-qd-soft'
(975,216): run-time error CSS1039: Token not allowed after unary operator: '-b0-text'
(979,51): run-time error CSS1039: Token not allowed after unary operator: '-qd-warn'
(979,177): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(980,53): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(981,48): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(987,61): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(988,72): run-time error CSS1039: Token not allowed after unary operator: '-b0-text'
(990,39): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(991,49): run-time error CSS1039: Token not allowed after unary operator: '-b0-red-dark'
(992,97): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(993,85): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-muted'
(997,66): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(1001,99): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(1002,74): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(1003,46): run-time error CSS1039: Token not allowed after unary operator: '-b0-text'
(1004,161): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(1005,48): run-time error CSS1039: Token not allowed after unary operator: '-b0-red-dark'
(1009,58): run-time error CSS1039: Token not allowed after unary operator: '-qd-soft'
(1009,96): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(1009,119): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(1011,40): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(1012,44): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(1016,94): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(1017,126): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(1018,45): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(1019,40): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(1024,67): run-time error CSS1039: Token not allowed after unary operator: '-b0-line-2'
(1024,110): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(1027,51): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-soft'
(1028,99): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(1028,156): run-time error CSS1039: Token not allowed after unary operator: '-qd-soft'
(1028,179): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(1031,73): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(1032,57): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(1033,125): run-time error CSS1039: Token not allowed after unary operator: '-b0-text'
(1034,64): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(1035,46): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(1036,144): run-time error CSS1039: Token not allowed after unary operator: '-b0-text'
(1037,42): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(1038,52): run-time error CSS1039: Token not allowed after unary operator: '-b0-red-dark'
(1068,120): run-time error CSS1039: Token not allowed after unary operator: '-b0-muted'
(1070,101): run-time error CSS1039: Token not allowed after unary operator: '-b0-line-2'
(1070,197): run-time error CSS1039: Token not allowed after unary operator: '-b0-text'
(1071,70): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(1071,108): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy-soft'
(1072,53): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(1079,209): run-time error CSS1039: Token not allowed after unary operator: '-b0-text'
(1081,68): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(1082,63): run-time error CSS1039: Token not allowed after unary operator: '-b0-red-soft'
(1082,90): run-time error CSS1039: Token not allowed after unary operator: '-b0-red'
(1084,64): run-time error CSS1039: Token not allowed after unary operator: '-b0-line'
(1084,190): run-time error CSS1039: Token not allowed after unary operator: '-b0-text-2'
(1085,59): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(1086,42): run-time error CSS1039: Token not allowed after unary operator: '-b0-navy'
(1101,71): run-time error CSS1039: Token not allowed after unary operator: '-b0-line-2'
 */
/* Giao diện B0 · hocsat.com (đỏ) — canvas "HOCSAT – Test & Learn Prototype (phương án cam)".
   Dùng riêng cho _LayoutB0, không phụ thuộc Bootstrap 3 / theme cũ. Mọi class có tiền tố b0-
   để sau này nạp chung với _Base (pha 2) không đụng nhau. */
:root {
    --b0-bg: #F3F5F9;
    --b0-surface: #FFFFFF;
    --b0-text: #1E293B;
    --b0-text-2: #475569;
    --b0-muted: #64748B;
    --b0-line: #E3E8F0;
    --b0-line-2: #CBD5E1;
    --b0-navy: #0B2A5B;
    --b0-navy-2: #163A75;
    --b0-navy-line: #2B4A80;
    --b0-navy-muted: #B8C4DA;
    --b0-navy-soft: #EEF3FA;
    --b0-red: #E5333F;
    --b0-red-dark: #C42430;
    --b0-red-soft: #FBE3E5;
    --b0-test: #FC7321;
    --b0-test-soft: #FEF0E3;
    --b0-learn: #7C3AED;
    --b0-learn-2: #C4B5FD;
    --b0-class: #16A34A;
    --b0-class-soft: #DCFCE7;
    --b0-dark: #15161A;
    --b0-dark-muted: #B7B8C0;
    --b0-zalo: #2563EB;
    --b0-wrap: 1180px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
/* Header dính (68px + viền 3px) che đầu section khi nhảy tới #products, #news… */
.b0 [id] { scroll-margin-top: 84px; }
body.b0 {
    margin: 0;
    background: var(--b0-bg);
    color: var(--b0-text);
    font-family: 'Be Vietnam Pro', 'Segoe UI', system-ui, sans-serif;
    font-size: 15px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}
/* :where() đưa độ ưu tiên về 0 để màu của .b0-btn--red, .b0-more… không bị rule link chung đè. */
:where(.b0 a) { color: inherit; text-decoration: none; }
:where(.b0 a:hover) { color: var(--b0-navy); }
.b0 img { max-width: 100%; }
.b0 h1, .b0 h2, .b0 h3 { margin: 0; color: var(--b0-navy); letter-spacing: -0.02em; }
.b0 p { margin: 0; }
.b0 :focus-visible { outline: 3px solid var(--b0-red); outline-offset: 2px; border-radius: 6px; }
.b0-ico { width: 18px; height: 18px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.b0-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.b0-wrap { max-width: var(--b0-wrap); margin: 0 auto; padding-left: 24px; padding-right: 24px; }

/* Nút */
.b0-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 18px; border-radius: 12px; font-weight: 700; font-size: 14px; border: 1px solid transparent; transition: background-color .15s, border-color .15s; }
.b0-btn--lg { min-height: 52px; padding: 0 26px; font-size: 15px; }
.b0-btn--red { background: var(--b0-red); color: #fff; }
.b0 .b0-btn--red:hover { background: var(--b0-red-dark); color: #fff; }
.b0-btn--ghost { background: #fff; color: var(--b0-navy); border-color: var(--b0-line-2); font-weight: 600; }
.b0 .b0-btn--ghost:hover { border-color: var(--b0-navy); }
.b0-btn--test { background: var(--b0-test); color: #fff; }
.b0-btn--learn { background: var(--b0-learn); color: #fff; }
.b0-btn--class { background: var(--b0-class); color: #fff; }
.b0 .b0-btn--test:hover, .b0 .b0-btn--learn:hover, .b0 .b0-btn--class:hover { color: #fff; filter: brightness(.93); }

.b0-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--b0-red); }
.b0-section { padding-top: 56px; padding-bottom: 24px; display: flex; flex-direction: column; gap: 22px; }
.b0-section__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; }
.b0-section__head > div { display: flex; flex-direction: column; gap: 6px; }
.b0-section__head h2 { font-size: 30px; font-weight: 800; }
.b0-section__head p { font-size: 14px; color: var(--b0-text-2); }
.b0-more { font-size: 14px; font-weight: 700; color: var(--b0-red); }
.b0 a.b0-more:hover { color: var(--b0-red-dark); }

/* Topbar */
.b0-topbar { background: var(--b0-navy); color: #fff; font-size: 12px; }
.b0-topbar .b0-wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 12px; padding-top: 4px; padding-bottom: 4px; }
.b0-topbar__products { display: flex; gap: 2px; }
.b0-topbar__products a { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 12px; border-radius: 8px; font-size: 13px; font-weight: 600; color: rgba(255,255,255,.85); }
.b0 .b0-topbar__products a:hover { color: #fff; background: rgba(255,255,255,.08); }
.b0-topbar__products .b0-ico { width: 15px; height: 15px; }
.b0-topbar__contact { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; color: rgba(255,255,255,.9); }
.b0-topbar__contact a, .b0-topbar__contact span { display: inline-flex; align-items: center; gap: 6px; }
.b0 .b0-topbar__contact a:hover { color: #fff; text-decoration: underline; }
.b0-topbar__contact .b0-ico { width: 12px; height: 12px; }

/* Header */
.b0-header { background: #fff; border-bottom: 3px solid var(--b0-navy); position: sticky; top: 0; z-index: 50; }
.b0-header .b0-nav { max-width: 1280px; margin: 0 auto; padding: 0 24px; min-height: 68px; display: flex; align-items: center; gap: 20px; }
.b0-logo { display: flex; align-items: center; min-height: 44px; flex-shrink: 0; }
.b0-logo img { display: block; height: 40px; width: auto; }
.b0-logo--drawer { min-height: 0; }
.b0-logo__by { align-self: flex-end; margin: 0 0 6px 8px; font-size: 12px; font-weight: 600; color: var(--b0-muted); white-space: nowrap; }
.b0-logo__by--dark { display: block; margin: 6px 0 0; color: #9FB0CC; }
.b0-logo--drawer img { height: 32px; }
.b0-menu { display: flex; align-items: center; justify-content: center; flex: 1 1 auto; min-width: 0; margin: 0; padding: 0; list-style: none; }
.b0-menu > li { position: relative; }
.b0-menu > li > a { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; padding: 10px 8px; border-radius: 8px; font-weight: 600; font-size: 14px; white-space: nowrap; }
.b0-menu > li > a .b0-ico { width: 14px; height: 14px; color: var(--b0-muted); }
.b0 .b0-menu > li > a:hover, .b0-menu > li:focus-within > a { color: var(--b0-red); }
.b0-menu ul { position: absolute; top: 100%; left: 0; min-width: 230px; margin: 0; padding: 8px; list-style: none; background: #fff; border: 1px solid var(--b0-line); border-radius: 12px; box-shadow: 0 12px 28px rgba(11,42,91,.14); opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity .15s, transform .15s, visibility .15s; }
.b0-menu > li:hover > ul, .b0-menu > li:focus-within > ul { opacity: 1; visibility: visible; transform: none; }
.b0-menu ul a { display: block; padding: 9px 12px; border-radius: 8px; font-size: 14px; }
.b0 .b0-menu ul a:hover { background: var(--b0-navy-soft); }
.b0-burger { display: none; width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--b0-line); background: #fff; align-items: center; justify-content: center; cursor: pointer; color: var(--b0-text); margin-left: auto; }
.b0-burger .b0-ico { width: 22px; height: 22px; }

/* Drawer mobile (I1) */
.b0-drawer { position: fixed; inset: 0; z-index: 100; display: none; }
.b0-drawer.is-open { display: block; }
.b0-drawer__backdrop { position: absolute; inset: 0; background: rgba(15,23,42,.45); }
.b0-drawer__panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(390px, 100%); background: #fff; display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain; }
.b0-drawer__top { display: flex; align-items: center; justify-content: space-between; padding: 16px 16px 8px; }
.b0-drawer__close { width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--b0-line); background: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; color: var(--b0-text); }
.b0-drawer nav { padding: 4px 8px 24px; display: flex; flex-direction: column; }
.b0-drawer__label { padding: 14px 14px 6px; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--b0-muted); }
.b0-drawer nav a { display: flex; align-items: center; gap: 14px; min-height: 52px; padding: 0 14px; border-radius: 12px; font-size: 15px; }
.b0 .b0-drawer nav a:hover { background: var(--b0-bg); }
.b0-drawer nav a .b0-ico { width: 24px; height: 24px; stroke-width: 1.8; color: #475569; }
.b0-drawer nav a > span { flex: 1; }
.b0-drawer nav a > .b0-drawer__ico { flex: none; display: inline-flex; }
.b0-drawer nav a > .b0-drawer__ico .b0-ico { color: inherit; }
.b0-drawer hr { border: 0; height: 1px; background: var(--b0-line); margin: 8px 14px; }
.b0-pill { padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 700; }
.b0-pill--free { background: var(--b0-class-soft); color: #166534; }
.b0-pill--soon { background: #EDE9FE; color: #6D28D9; }
body.b0-lock { overflow: hidden; }

/* Hero */
.b0-hero { background: #fff; border-bottom: 1px solid var(--b0-line); }
.b0-hero .b0-wrap { padding-top: 64px; padding-bottom: 56px; display: grid; grid-template-columns: 1.15fr 1fr; gap: 48px; align-items: center; }
.b0-hero__main { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.b0-badge { align-self: flex-start; padding: 6px 12px; border-radius: 999px; background: var(--b0-navy-soft); color: var(--b0-navy); font-size: 12px; font-weight: 700; }
.b0-hero h1 { font-size: 44px; font-weight: 800; letter-spacing: -0.03em; line-height: 1.1; }
.b0-hero__lead { font-size: 17px; line-height: 1.55; color: var(--b0-text-2); }
.b0-hero__lead strong { color: var(--b0-text); }
.b0-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 4px; }
.b0-stats { display: flex; flex-wrap: wrap; gap: 28px; padding: 8px 0 0; margin: 0; }
.b0-stats div { display: flex; flex-direction: column; }
.b0-stats dt { order: 2; font-size: 12px; color: var(--b0-muted); }
.b0-stats dd { order: 1; margin: 0; font-size: 26px; font-weight: 800; color: var(--b0-navy); letter-spacing: -0.02em; }
.b0-hero__side { min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.b0-eco { background: var(--b0-navy); color: #fff; border-radius: 20px; padding: 22px; display: flex; flex-direction: column; gap: 14px; }
.b0-eco__title { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--b0-navy-muted); }
.b0-eco a { display: flex; align-items: center; gap: 10px; background: var(--b0-navy-2); border-radius: 12px; padding: 12px 14px; color: #fff; }
.b0 .b0-eco a:hover { color: #fff; background: #1C4688; }
.b0-eco a > span:last-child { display: flex; flex-direction: column; }
.b0-eco strong { font-size: 14px; }
.b0-eco small { font-size: 12px; color: var(--b0-navy-muted); }
.b0-dot { width: 36px; height: 36px; border-radius: 50%; color: #fff; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.b0-dot .b0-ico { width: 16px; height: 16px; }
.b0-dot--test { background: var(--b0-test); }
.b0-dot--learn { background: var(--b0-learn); }
.b0-dot--class { background: var(--b0-class); }
.b0-dot--red { background: var(--b0-red); width: 32px; height: 32px; }
.b0-eco__foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 8px; border-top: 1px solid var(--b0-navy-line); font-size: 12px; color: var(--b0-navy-muted); }
.b0-eco__foot strong { color: #fff; font-size: 12px; }
.b0-hint { background: #FFF4E0; border: 1px solid #FBD38D; border-radius: 16px; padding: 14px 16px; display: flex; align-items: center; gap: 12px; font-size: 13px; }

/* Hall of Fame strip */
.b0-hof { background: var(--b0-red-soft); }
.b0-hof .b0-wrap { padding-top: 14px; padding-bottom: 14px; display: flex; align-items: center; gap: 10px 14px; }
.b0-hof__label { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--b0-red); white-space: nowrap; }
.b0-hof__list { display: flex; gap: 10px 14px; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; min-width: 0; }
.b0-hof__list a { display: inline-flex; align-items: center; gap: 8px; padding: 4px 14px 4px 4px; border-radius: 999px; background: #fff; border: 1px solid var(--b0-line); white-space: nowrap; }
.b0-hof__list img { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; object-position: center 25%; }
.b0-hof__list strong { font-size: 16px; font-weight: 800; color: var(--b0-red); }
.b0-hof__list span { font-size: 13px; font-weight: 600; color: var(--b0-navy); }
.b0-hof .b0-more { margin-left: auto; font-size: 13px; white-space: nowrap; }

/* Sản phẩm */
.b0-products { padding-top: 64px; }
.b0-center { text-align: center; align-items: center; display: flex; flex-direction: column; gap: 8px; }
.b0-center h2 { font-size: 34px; font-weight: 800; }
.b0-center p { font-size: 15px; color: var(--b0-muted); max-width: 680px; }
.b0-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.b0-prod { background: #fff; border: 1px solid var(--b0-line); border-radius: 20px; padding: 28px; display: flex; flex-direction: column; gap: 16px; min-width: 0; position: relative; }
.b0-prod--dark { background: var(--b0-dark); color: #fff; border-color: var(--b0-dark); }
.b0-prod__flag { position: absolute; top: -13px; left: 28px; padding: 5px 12px; border-radius: 999px; background: var(--b0-learn); color: #fff; font-size: 11px; font-weight: 700; }
.b0-prod__head { display: flex; align-items: center; gap: 12px; }
.b0-prod__head > span:last-child { display: flex; flex-direction: column; }
.b0-prod h3 { font-size: 20px; font-weight: 800; }
.b0-prod--dark h3 { color: #fff; }
.b0-prod__head small { font-size: 12px; color: var(--b0-muted); }
.b0-prod--dark .b0-prod__head small, .b0-prod--dark p, .b0-prod--dark .b0-prod__quote { color: var(--b0-dark-muted); }
.b0-icircle { width: 48px; height: 48px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.b0-icircle .b0-ico { width: 24px; height: 24px; }
.b0-icircle--test { background: var(--b0-test-soft); color: var(--b0-test); }
.b0-icircle--learn { background: #2A2240; color: var(--b0-learn-2); }
.b0-icircle--class { background: var(--b0-class-soft); color: var(--b0-class); }
.b0-prod p { font-size: 14px; color: var(--b0-muted); line-height: 1.55; }
.b0-checks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 14px; }
.b0-checks li { display: flex; align-items: flex-start; gap: 8px; }
.b0-checks .b0-ico { width: 16px; height: 16px; stroke-width: 2.4; margin-top: 2px; }
.b0-checks--test .b0-ico { color: var(--b0-test); }
.b0-checks--learn .b0-ico { color: var(--b0-learn-2); }
.b0-checks--class .b0-ico { color: var(--b0-class); }
.b0-prod__foot { margin-top: auto; padding-top: 6px; display: flex; flex-direction: column; gap: 10px; }
.b0-prod__quote { font-size: 12px; color: var(--b0-muted); font-style: italic; }
.b0-prod__foot .b0-btn { min-height: 48px; }
.b0-chooser { background: var(--b0-navy-soft); border-radius: 16px; padding: 18px 24px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px; font-size: 14px; color: var(--b0-navy); margin: 0; list-style: none; }
.b0-chooser li { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; }
.b0-chooser li + li::before { content: "·"; color: #94A3B8; margin-right: 6px; font-weight: 400; }
.b0-num { width: 26px; height: 26px; border-radius: 50%; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; }

/* Học viên */
.b0-students { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.b0-student { background: #fff; border: 1px solid var(--b0-line); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; min-width: 0; }
.b0-student__photo { position: relative; aspect-ratio: 4 / 3; background: var(--b0-bg); }
.b0-student__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 25%; display: block; }
.b0-score { position: absolute; left: 14px; bottom: 14px; display: inline-flex; align-items: baseline; gap: 6px; padding: 6px 12px; border-radius: 999px; background: #fff; box-shadow: 0 2px 8px rgba(11,42,91,.18); }
.b0-score strong { font-size: 22px; font-weight: 800; color: var(--b0-red); letter-spacing: -0.02em; line-height: 1; }
.b0-score span { font-size: 11px; font-weight: 700; color: var(--b0-navy); }
.b0-student__body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.b0-student__body h3 { font-size: 16px; font-weight: 700; letter-spacing: 0; }
.b0-student__school { font-size: 12px; color: var(--b0-muted); }
.b0-student__gain { font-size: 13px; font-weight: 600; color: var(--b0-class); }
.b0-student__body details { font-size: 13px; color: var(--b0-text-2); }
.b0-student__body summary { cursor: pointer; color: var(--b0-muted); font-size: 12px; }
.b0-student__body details p { margin-top: 6px; line-height: 1.55; }
.b0-student__press { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: var(--b0-red); }
.b0-student__press .b0-ico { width: 12px; height: 12px; stroke-width: 2.4; }
.b0-banner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 26px; border-radius: 16px; background: var(--b0-navy); color: #fff; }
.b0-banner > span { display: flex; flex-direction: column; gap: 4px; }
.b0-banner strong { font-size: 18px; }
.b0-banner small { font-size: 14px; color: var(--b0-navy-muted); }
.b0-banner .b0-btn { min-height: 48px; }

/* Khóa học */
.b0-band { background: #fff; border-top: 1px solid var(--b0-line); border-bottom: 1px solid var(--b0-line); margin-top: 32px; }
.b0-courses { padding-top: 56px; padding-bottom: 56px; display: grid; grid-template-columns: 1fr 1.3fr; gap: 40px; align-items: center; }
.b0-courses__main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.b0-courses__main .b0-eyebrow { color: var(--b0-class); }
.b0-courses__main h2 { font-size: 30px; font-weight: 800; }
.b0-courses__main > p { font-size: 14px; line-height: 1.6; color: var(--b0-text-2); }
.b0-courses__main .b0-checks { gap: 10px; }
.b0-courses__side { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.b0-courses__side > span { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--b0-muted); }
.b0-pillar { background: #fff; border: 1px solid var(--b0-line); border-radius: 16px; padding: 20px; display: flex; gap: 14px; }
.b0-pillar > span:first-child { width: 44px; height: 44px; border-radius: 50%; background: var(--b0-red-soft); color: var(--b0-red); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.b0-pillar h3 { font-size: 15px; font-weight: 700; letter-spacing: 0; }
.b0-pillar p { font-size: 13px; line-height: 1.55; color: var(--b0-text-2); margin-top: 4px; }

/* Công cụ */
.b0-tools { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.b0-tools a { height: 100%; background: #fff; border: 1px solid var(--b0-line); border-radius: 14px; padding: 16px; display: flex; gap: 12px; align-items: flex-start; transition: border-color .15s, box-shadow .15s; }
.b0 .b0-tools a:hover { border-color: var(--b0-red); box-shadow: 0 6px 18px rgba(11,42,91,.08); color: inherit; }
.b0-tools a > span:first-child { width: 40px; height: 40px; border-radius: 12px; background: var(--b0-red-soft); color: var(--b0-red); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.b0-tools a > span:last-child { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.b0-tools strong { font-size: 14px; color: var(--b0-navy); }
.b0-tools small { font-size: 12px; color: var(--b0-muted); line-height: 1.45; }

/* Tin tức */
.b0-news { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.b0-news article { background: #fff; border: 1px solid var(--b0-line); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; min-width: 0; }
.b0-news__thumb { display: block; aspect-ratio: 16 / 9; background: var(--b0-bg); }
.b0-news__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.b0-news__body { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 6px; }
.b0-news time { font-size: 12px; color: var(--b0-muted); }
.b0-news h3 { font-size: 15px; font-weight: 700; line-height: 1.4; letter-spacing: 0; }
.b0 .b0-news h3 a:hover { color: var(--b0-red); }
.b0-news p { font-size: 13px; color: var(--b0-text-2); line-height: 1.5; }
.b0-newscols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.b0-newscol { background: #fff; border: 1px solid var(--b0-line); border-radius: 16px; padding: 18px 20px; display: flex; flex-direction: column; gap: 10px; }
.b0-newscol h3 { font-size: 16px; font-weight: 800; letter-spacing: 0; }
.b0-newscol > p { font-size: 12px; color: var(--b0-muted); }
.b0-newscol ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.b0-newscol li { border-top: 1px solid var(--b0-line); }
.b0-newscol li a { display: block; padding: 10px 0; font-size: 14px; font-weight: 600; line-height: 1.4; }
.b0 .b0-newscol li a:hover { color: var(--b0-red); }
.b0-newscol .b0-more { margin-top: auto; font-size: 13px; }

/* Testimonials + FAQ */
.b0-say { display: grid; grid-template-columns: 1.1fr 1fr; gap: 28px; align-items: start; }
.b0-say h2 { font-size: 26px; font-weight: 800; margin-bottom: 14px; }
.b0-quotes { display: flex; flex-direction: column; gap: 12px; }
.b0-quote { margin: 0; background: #fff; border: 1px solid var(--b0-line); border-radius: 16px; padding: 18px 20px; display: flex; flex-direction: column; gap: 12px; }
.b0-quote blockquote { margin: 0; font-size: 14px; line-height: 1.6; color: var(--b0-text); }
.b0-quote figcaption { display: flex; align-items: center; gap: 10px; font-size: 13px; }
.b0-quote img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.b0-quote figcaption span { display: flex; flex-direction: column; }
.b0-quote figcaption strong { color: var(--b0-navy); }
.b0-quote figcaption small { color: var(--b0-muted); font-size: 12px; }
.b0-faq { display: flex; flex-direction: column; gap: 10px; }
.b0-faq details { background: #fff; border: 1px solid var(--b0-line); border-radius: 14px; }
.b0-faq summary { list-style: none; cursor: pointer; padding: 16px 18px; font-weight: 700; font-size: 15px; color: var(--b0-navy); display: flex; justify-content: space-between; gap: 12px; align-items: center; min-height: 44px; }
.b0-faq summary::-webkit-details-marker { display: none; }
.b0-faq summary .b0-ico { transition: transform .15s; color: var(--b0-muted); }
.b0-faq details[open] summary .b0-ico { transform: rotate(180deg); }
.b0-faq details > div { padding: 0 18px 16px; font-size: 14px; line-height: 1.6; color: var(--b0-text-2); display: flex; flex-direction: column; gap: 8px; }
.b0-faq details a { color: var(--b0-red); font-weight: 600; }

/* CTA cuối */
/* Chỉ margin dọc: phần tử này cũng là .b0-wrap, ghi "margin: 40px 0 56px" sẽ xoá margin auto ngang
   và khung bị dạt sang trái ở màn rộng hơn 1180px. */
.b0-final { margin-top: 40px; margin-bottom: 56px; }
.b0-final > div { background: var(--b0-navy); color: #fff; border-radius: 24px; padding: 44px 32px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.b0-final h2 { color: #fff; font-size: 30px; font-weight: 800; }
.b0-final p { color: var(--b0-navy-muted); max-width: 640px; font-size: 15px; line-height: 1.55; }
.b0-final .b0-hero__cta { justify-content: center; }
.b0-btn--white { background: #fff; color: var(--b0-navy); }

/* Footer */
.b0-footer { background: #081F45; color: #C9D3E6; font-size: 14px; margin-top: auto; }
.b0-footer .b0-wrap { padding-top: 48px; padding-bottom: 32px; display: grid; grid-template-columns: 1.6fr 1fr 1.2fr 1.3fr; gap: 32px; }
.b0-footer h2 { color: #fff; font-size: 14px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 12px; }
.b0-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.b0 .b0-footer a:hover { color: #fff; text-decoration: underline; }
.b0-footer__logo { display: block; height: 64px; width: auto; }
.b0-footer__about p { margin-top: 12px; line-height: 1.6; font-size: 13px; }
.b0-footer__bottom { border-top: 1px solid #1D3561; }
.b0-footer__bottom .b0-wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding-top: 16px; padding-bottom: 16px; font-size: 12px; color: #9FB0CC; }
.b0-footer__bottom nav { display: flex; gap: 16px; }


/* ============================================================
   Trang con B1–B8 (canvas "hocsat.com – Trang tin tức HOCSAT (đỏ)")
   ============================================================ */
.b0-menu > li > a[aria-current] { color: var(--b0-red); }
.b0-btn--sm { min-height: 40px; padding: 0 14px; font-size: 12px; border-radius: 10px; }
.b0-btn--zalo { background: var(--b0-zalo); color: #fff; }
.b0 .b0-btn--zalo:hover { color: #fff; background: #1D4ED8; }
.b0-btn--outline-dark { border-color: #3B5A8F; color: #fff; background: transparent; font-weight: 600; }
.b0 .b0-btn--outline-dark:hover { color: #fff; border-color: #fff; }
.b0-btn--block { width: 100%; }

/* Đầu trang con */
.b0-phero { background: #fff; border-bottom: 1px solid var(--b0-line); }
.b0-phero > .b0-wrap { padding-top: 28px; padding-bottom: 40px; display: flex; flex-direction: column; gap: 18px; }
.b0-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13px; color: var(--b0-muted); }
.b0-crumbs .b0-ico { width: 14px; height: 14px; color: #94A3B8; }
.b0 .b0-crumbs a { color: var(--b0-muted); }
.b0 .b0-crumbs a:hover { color: var(--b0-red); }
.b0-crumbs [aria-current] { color: var(--b0-navy); font-weight: 600; }
.b0-phero__text { display: flex; flex-direction: column; gap: 10px; max-width: 820px; }
.b0-phero h1 { font-size: 38px; font-weight: 800; letter-spacing: -0.03em; line-height: 1.12; }
.b0-phero__lead { font-size: 16px; line-height: 1.6; color: var(--b0-text-2); }
.b0-phero__lead p + p { margin-top: 8px; }
.b0-phero__lead ul { margin: 8px 0 0; padding-left: 20px; }
.b0-chips { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 6px; margin: 0; list-style: none; }
.b0-chips a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; font-size: 13.5px; font-weight: 600; background: #fff; border: 1px solid var(--b0-line-2); color: var(--b0-navy); }
.b0 .b0-chips a:hover { border-color: var(--b0-red); color: var(--b0-red); }
.b0 .b0-chips a[aria-current] { background: var(--b0-red); border-color: var(--b0-red); color: #fff; }

/* Thân trang con */
.b0-body { padding-top: 32px; padding-bottom: 56px; display: flex; flex-direction: column; gap: 28px; }
.b0-cols { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 32px; align-items: start; }
.b0-cols > div { min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.b0-h2row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; }
.b0-h2row > div { display: flex; flex-direction: column; gap: 4px; }
.b0-h2row h2 { font-size: 28px; font-weight: 800; }

/* Sidebar */
.b0-side { display: flex; flex-direction: column; gap: 16px; min-width: 0; position: sticky; top: 92px; }
.b0-sidecard { background: #fff; border: 1px solid var(--b0-line); border-radius: 18px; padding: 20px; display: flex; flex-direction: column; gap: 12px; }
.b0-sidecard > strong { font-size: 15px; color: var(--b0-navy); }
.b0-sidecard > p { font-size: 13.5px; color: var(--b0-text-2); line-height: 1.55; }
.b0-sidecard .b0-btn { min-height: 46px; }
.b0-sidecard--test { background: #FFF4E0; border-color: #FBD38D; }
.b0-catlist { list-style: none; margin: 0; padding: 0; font-size: 14px; }
.b0-catlist a { display: flex; justify-content: space-between; align-items: center; min-height: 40px; border-bottom: 1px solid #EEF2F7; }
.b0-catlist li:last-child a { border-bottom: 0; }
.b0-catlist span { color: #94A3B8; }
.b0 .b0-catlist a:hover, .b0 .b0-catlist a[aria-current] { color: var(--b0-red); }
.b0-toplist { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 10px; font-size: 13.5px; line-height: 1.4; }
.b0-toplist li::marker { color: var(--b0-red); font-weight: 800; }
.b0 .b0-toplist a:hover { color: var(--b0-red); }

/* Thẻ bài viết */
.b0-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.b0-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.b0-card { background: #fff; border: 1px solid var(--b0-line); border-radius: 18px; padding: 14px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.b0-card__thumb { display: block; height: 160px; border-radius: 14px; overflow: hidden; background: var(--b0-navy-soft); }
.b0-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.b0-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12px; color: var(--b0-muted); }
.b0-meta time, .b0-meta > span:not(.b0-tag) { display: inline-flex; align-items: center; gap: 4px; }
.b0-meta .b0-ico { width: 14px; height: 14px; }
.b0-tag { padding: 3px 9px; border-radius: 999px; background: var(--b0-red-soft); color: var(--b0-red); font-weight: 700; font-size: 12px; }
.b0-card h3 { font-size: 16px; font-weight: 700; line-height: 1.35; letter-spacing: 0; }
.b0 .b0-card h3 a:hover { color: var(--b0-red); }
.b0-card p { font-size: 13.5px; line-height: 1.55; color: var(--b0-muted); }
.b0-card__more { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; min-height: 36px; font-size: 13px; font-weight: 700; color: var(--b0-red); }
.b0 a.b0-card__more:hover { color: var(--b0-red-dark); }
.b0-card__more .b0-ico { width: 16px; height: 16px; }

/* Bài nổi bật (navy, 2 cột) */
.b0-feature { background: var(--b0-navy); color: #fff; border-radius: 22px; display: grid; grid-template-columns: 1.1fr 1fr; overflow: hidden; }
.b0-feature__img { position: relative; min-height: 260px; background: var(--b0-red); }
.b0-feature__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.b0-feature__img span { position: absolute; left: 14px; bottom: 14px; padding: 4px 10px; border-radius: 999px; background: rgba(11,42,91,.85); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.b0-feature__body { padding: 32px; display: flex; flex-direction: column; gap: 12px; }
.b0-feature .b0-meta { color: var(--b0-navy-muted); }
.b0-feature .b0-tag { background: var(--b0-red); color: #fff; }
.b0-feature h2 { color: #fff; font-size: 26px; font-weight: 800; line-height: 1.25; }
.b0 .b0-feature h2 a { color: #fff; }
.b0-feature p { font-size: 14.5px; line-height: 1.6; color: var(--b0-navy-muted); }
.b0-feature .b0-btn { margin-top: auto; align-self: flex-start; min-height: 46px; }

/* Phân trang */
.b0-pager { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; padding-top: 8px; }
.b0-pager a, .b0-pager span { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; font-weight: 700; font-size: 14px; background: #fff; border: 1px solid var(--b0-line-2); color: var(--b0-navy); }
.b0-pager span { border: 0; background: transparent; }
.b0 .b0-pager a:hover { border-color: var(--b0-navy); }
.b0 .b0-pager a[aria-current] { background: var(--b0-navy); border-color: var(--b0-navy); color: #fff; }

/* Dải CTA navy cuối trang */
.b0-ctaband { background: var(--b0-navy); color: #fff; }
.b0-ctaband > .b0-wrap { padding-top: 44px; padding-bottom: 44px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; }
.b0-ctaband__text { display: flex; flex-direction: column; gap: 6px; max-width: 640px; }
.b0-ctaband__eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--b0-navy-muted); }
.b0-ctaband h2 { color: #fff; font-size: 26px; font-weight: 800; }
.b0-ctaband p { font-size: 14px; color: var(--b0-navy-muted); line-height: 1.55; }
.b0-ctaband__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* Bảng dùng chung */
.b0-tablewrap { overflow-x: auto; border: 1px solid var(--b0-line); border-radius: 14px; background: #fff; }
.b0-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.b0-table th { background: var(--b0-bg); color: var(--b0-text-2); font-weight: 700; text-align: left; padding: 12px 14px; font-size: 13px; }
.b0-table td { padding: 12px 14px; border-top: 1px solid var(--b0-line); vertical-align: top; }

/* Accordion kiểu B8 (dùng <details>; icon cộng/trừ) */
.b0-acc { display: flex; flex-direction: column; gap: 10px; }
.b0-acc details { background: #fff; border: 1px solid var(--b0-line); border-radius: 14px; padding: 4px 18px; }
.b0-acc details[open] { border-color: var(--b0-red); }
.b0-acc summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 52px; padding: 8px 0; font-size: 15px; font-weight: 700; color: var(--b0-navy); }
.b0-acc summary::-webkit-details-marker { display: none; }
.b0-acc summary .b0-ico { color: var(--b0-red); width: 20px; height: 20px; }
.b0-acc summary .b0-ico--open { display: none; }
.b0-acc details[open] summary .b0-ico--open { display: inline; }
.b0-acc details[open] summary .b0-ico--closed { display: none; }
.b0-acc details > div { padding: 0 0 16px; font-size: 14px; line-height: 1.6; color: var(--b0-text-2); display: flex; flex-direction: column; gap: 8px; }
.b0-acc details a { color: var(--b0-red); font-weight: 600; }

/* Nội dung HTML từ CMS (thân bài, mô tả chuyên mục) */
.b0-prose { font-size: 16px; line-height: 1.7; color: var(--b0-text); overflow-wrap: anywhere; }
.b0-prose h2 { font-size: 24px; font-weight: 800; margin: 32px 0 12px; line-height: 1.3; scroll-margin-top: 92px; }
.b0-prose h3 { font-size: 19px; font-weight: 700; margin: 24px 0 10px; line-height: 1.35; letter-spacing: 0; }
.b0-prose h4 { font-size: 16px; font-weight: 700; margin: 18px 0 8px; color: var(--b0-navy); }
.b0-prose p { margin: 0 0 14px; }
.b0-prose ul, .b0-prose ol { padding-left: 22px; margin: 0 0 14px; }
.b0-prose li + li { margin-top: 6px; }
.b0-prose a { color: var(--b0-red); text-decoration: underline; text-underline-offset: 2px; }
.b0 .b0-prose a:hover { color: var(--b0-red-dark); }
.b0-prose img { height: auto; border-radius: 12px; display: block; margin: 0 auto; }
.b0-prose figure { margin: 18px 0; }
.b0-prose figcaption { font-size: 13px; color: var(--b0-muted); text-align: center; margin-top: 6px; }
.b0-prose blockquote { margin: 18px 0; padding: 14px 18px; border-left: 4px solid var(--b0-red); background: var(--b0-bg); border-radius: 0 12px 12px 0; color: var(--b0-text-2); }
.b0-prose table { width: 100%; border-collapse: collapse; font-size: 14px; display: block; overflow-x: auto; margin: 0 0 14px; }
.b0-prose th, .b0-prose td { border: 1px solid var(--b0-line); padding: 10px 12px; text-align: left; vertical-align: top; }
.b0-prose th { background: var(--b0-bg); color: var(--b0-text-2); }
.b0-prose iframe { max-width: 100%; }

@media (max-width: 1080px) {
    .b0-cols { grid-template-columns: 1fr; }
    .b0-side { position: static; }
    .b0-cards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .b0-feature { grid-template-columns: 1fr; }
    .b0-feature__img { min-height: 200px; }
    .b0-feature__body { padding: 22px; }
    .b0-phero h1 { font-size: 30px; }
    .b0-cards, .b0-cards--3 { grid-template-columns: 1fr; }
    .b0-ctaband__actions .b0-btn { width: 100%; }
}

/* Trang lỗi 403/404/405/500 (Views/Shared/Error.cshtml) */
.b0-err > .b0-wrap { padding-top: 56px; padding-bottom: 72px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; }
.b0-err__code { font-size: 120px; font-weight: 800; line-height: 1; letter-spacing: -0.04em; color: var(--b0-red); }
.b0-err h1 { font-size: 34px; font-weight: 800; }
.b0-err p { max-width: 560px; color: var(--b0-text-2); font-size: 16px; line-height: 1.6; }
.b0-err__cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; padding-top: 6px; }
.b0-err__links { width: 100%; max-width: 980px; margin-top: 24px; text-align: left; }

/* Trang pháp lý (/dieu-khoan-su-dung) */
.b0-legal { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 32px; align-items: start; }
.b0-legal__toc { position: sticky; top: 92px; background: #fff; border: 1px solid var(--b0-line); border-radius: 18px; padding: 18px 20px; display: flex; flex-direction: column; gap: 10px; font-size: 14px; }
.b0-legal__toc strong { color: var(--b0-navy); font-size: 13px; text-transform: uppercase; letter-spacing: .06em; }
.b0-legal__toc ol { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 8px; }
.b0 .b0-legal__toc a:hover { color: var(--b0-red); }
.b0-legal__body { background: #fff; border: 1px solid var(--b0-line); border-radius: 18px; padding: 8px 32px 24px; }
.b0-legal__body h2:first-child { margin-top: 20px; }
@media (max-width: 900px) {
    .b0-legal { grid-template-columns: 1fr; }
    .b0-legal__toc { position: static; }
    .b0-legal__body { padding: 4px 18px 18px; }
    .b0-err__code { font-size: 88px; }
    .b0-err h1 { font-size: 28px; }
}

/* Responsive — B0 chỉ có bản 1280; các mốc dưới đây tự dựng theo token */
@media (max-width: 1180px) {
    .b0-menu { display: none; }
    .b0-burger { display: inline-flex; }
    .b0-tools { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .b0-news { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
    .b0-hero .b0-wrap, .b0-courses, .b0-say { grid-template-columns: 1fr; }
    .b0-hero .b0-wrap { padding-top: 40px; padding-bottom: 40px; gap: 32px; }
    .b0-hero h1 { font-size: 36px; }
    .b0-grid3 { grid-template-columns: 1fr; gap: 24px; }
    .b0-students { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .b0-newscols { grid-template-columns: 1fr; }
    .b0-footer .b0-wrap { grid-template-columns: 1fr 1fr; }
    .b0-topbar__contact span.b0-hours { display: none; }
}
@media (max-width: 640px) {
    .b0-wrap, .b0-header .b0-nav { padding-left: 16px; padding-right: 16px; }
    .b0-header .b0-nav { min-height: 60px; gap: 12px; }
    .b0-logo img { height: 34px; }
    .b0-logo__by { font-size: 11px; margin-bottom: 4px; }
    .b0-topbar__products { display: none; }
    .b0-topbar .b0-wrap { justify-content: center; }
    .b0-topbar__contact { gap: 14px; }
    .b0-topbar__contact .b0-mail { display: none; }
    .b0-hero h1 { font-size: 30px; }
    .b0-hero__lead { font-size: 16px; }
    .b0-hero__cta .b0-btn { width: 100%; }
    .b0-stats { gap: 16px 24px; }
    .b0-stats div { width: calc(50% - 12px); }
    .b0-hof .b0-wrap { flex-wrap: wrap; }
    .b0-hof__list { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; width: 100%; padding-bottom: 4px; }
    .b0-hof__list li { scroll-snap-align: start; }
    .b0-hof .b0-more { margin-left: 0; }
    .b0-center h2, .b0-section__head h2, .b0-courses__main h2, .b0-final h2 { font-size: 26px; }
    .b0-prod { padding: 22px; }
    .b0-chooser { flex-direction: column; align-items: flex-start; }
    .b0-chooser li + li::before { display: none; }
    .b0-students { grid-template-columns: 1fr; }
    .b0-tools, .b0-news { grid-template-columns: 1fr; }
    .b0-footer .b0-wrap { grid-template-columns: 1fr; }
    .b0-final > div { padding: 32px 20px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .b0 * { transition: none !important; }
}

/* B3 · Hub tin (Views/News/Index.cshtml) — chỉ phần riêng của trang; còn lại dùng thành phần chung b0.css */
.b0-p-news .b0-p-news__empty { padding: 24px; border-radius: 16px; background: #fff; border: 1px solid var(--b0-line); color: var(--b0-text-2); font-size: 15px; line-height: 1.6; }
.b0 .b0-p-news .b0-p-news__empty a { color: var(--b0-red); font-weight: 600; }
.b0-p-news .b0-feature__img { display: block; }
@media (max-width: 1080px) { .b0-p-news .b0-feature__img { min-height: 240px; } }
@media (max-width: 760px) { .b0-p-news .b0-feature h2 { font-size: 22px; } }
@media (max-width: 640px) { .b0-p-news .b0-p-news__empty { padding: 18px; } }

/* B4 · Bài viết chi tiết (Views/News/Detail.cshtml + BoxNewsCungChuDe.cshtml) — chỉ phần riêng của trang;
   còn lại dùng thành phần chung b0.css. Mọi selector bắt đầu bằng .b0-p-article. */
.b0-p-article .b0-p-article__head { max-width: 860px; }
.b0-p-article .b0-p-article__head h1 { font-size: 36px; line-height: 1.15; }
.b0-p-article .b0-p-article__head .b0-phero__lead { font-size: 17px; }
.b0-p-article .b0-p-article__meta { font-size: 13px; gap: 8px 12px; }
.b0 .b0-p-article a.b0-tag:hover { color: var(--b0-red-dark); }

/* Lưới 3 cột của thiết kế: mục lục 220 / nội dung / sidebar 300 */
.b0-p-article .b0-p-article__grid { display: grid; grid-template-columns: 220px minmax(0, 1fr) 300px; gap: 28px; align-items: start; }
.b0-p-article .b0-p-article__rail { position: sticky; top: 92px; display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.b0-p-article .b0-p-article__toc { display: flex; flex-direction: column; gap: 10px; max-height: calc(100vh - 180px); overflow-y: auto; }
.b0-p-article .b0-p-article__toc > strong { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--b0-muted); }
.b0-p-article .b0-p-article__toclist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; font-size: 13.5px; line-height: 1.4; }
.b0-p-article .b0-p-article__toclist a { display: block; padding: 7px 0 7px 12px; border-left: 2px solid var(--b0-line); color: var(--b0-text-2); }
.b0 .b0-p-article .b0-p-article__toclist a:hover { color: var(--b0-navy); border-left-color: var(--b0-line-2); }
.b0 .b0-p-article .b0-p-article__toclist a[aria-current] { color: var(--b0-red); border-left-color: var(--b0-red); font-weight: 600; }

.b0-p-article .b0-p-article__share { display: flex; gap: 8px; }
.b0-p-article .b0-p-article__sharebtn { width: 40px; height: 40px; border-radius: 10px; border: 1px solid var(--b0-line-2); background: #fff; color: var(--b0-navy); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; font: inherit; }
.b0 .b0-p-article .b0-p-article__sharebtn:hover { border-color: var(--b0-navy); color: var(--b0-navy); }
.b0-p-article .b0-p-article__ico-copied { display: none; color: var(--b0-class); }
.b0-p-article .is-copied .b0-p-article__ico-copy { display: none; }
.b0-p-article .is-copied .b0-p-article__ico-copied { display: inline; }

/* Thân bài: khung trắng */
.b0-p-article .b0-p-article__main { background: #fff; border: 1px solid var(--b0-line); border-radius: 20px; padding: 32px 36px; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.b0-p-article .b0-p-article__main > .b0-prose > h2:first-child { margin-top: 0; }
.b0-p-article .b0-prose > div::after { content: ""; display: table; clear: both; }

/* Mục lục gập — chỉ hiện ở màn hẹp */
.b0-p-article .b0-p-article__tocm { display: none; border: 1px solid var(--b0-line); border-radius: 14px; background: var(--b0-bg); padding: 0 16px; }
.b0-p-article .b0-p-article__tocm summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; min-height: 48px; font-size: 14px; font-weight: 700; color: var(--b0-navy); }
.b0-p-article .b0-p-article__tocm summary::-webkit-details-marker { display: none; }
.b0-p-article .b0-p-article__tocm summary .b0-ico { color: var(--b0-red); transition: transform .15s; }
.b0-p-article .b0-p-article__tocm[open] summary .b0-ico { transform: rotate(180deg); }
.b0-p-article .b0-p-article__tocm .b0-p-article__toclist { padding-bottom: 12px; }

/* Bài cùng chủ đề (BoxNewsCungChuDe) */
.b0-p-article .b0-topic { border: 1px solid var(--b0-line); border-radius: 16px; padding: 20px 22px; display: flex; flex-direction: column; gap: 12px; background: var(--b0-navy-soft); }
.b0-p-article .b0-topic__title { font-size: 17px; font-weight: 800; letter-spacing: 0; }
.b0-p-article .b0-topic__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.b0-p-article .b0-topic__list a { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; font-size: 14.5px; line-height: 1.45; color: var(--b0-navy); font-weight: 600; }
.b0-p-article .b0-topic__list .b0-ico { width: 16px; height: 16px; margin-top: 2px; color: var(--b0-red); }
.b0 .b0-p-article .b0-topic__list a:hover { color: var(--b0-red); }
.b0-p-article .b0-topic__hub { font-size: 13.5px; }

/* Hỏi qua Zalo (thay khối tác giả có ảnh) */
.b0-p-article .b0-p-article__ask { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; padding: 16px 18px; border-radius: 16px; background: var(--b0-bg); }
.b0-p-article .b0-p-article__ask > div { display: flex; flex-direction: column; gap: 2px; font-size: 14px; color: var(--b0-muted); }
.b0-p-article .b0-p-article__ask strong { color: var(--b0-navy); }
.b0-p-article .b0-p-article__dmca { line-height: 0; }

.b0-p-article .b0-p-article__related { display: flex; flex-direction: column; gap: 22px; padding-top: 24px; }

@media (max-width: 1180px) {
    /* Không đủ chỗ cho 3 cột: sidebar xuống dưới thân bài, mục lục vẫn ở trái */
    .b0-p-article .b0-p-article__grid { grid-template-columns: 200px minmax(0, 1fr); }
    .b0-p-article .b0-p-article__aside { grid-column: 2; }
    .b0-p-article .b0-p-article__aside .b0-side { position: static; }
}
@media (max-width: 1080px) {
    .b0-p-article .b0-p-article__grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .b0-p-article .b0-p-article__aside { grid-column: auto; order: 3; }
    .b0-p-article .b0-p-article__main { order: 1; }
    .b0-p-article .b0-p-article__rail { order: 2; position: static; }
    .b0-p-article .b0-p-article__toc { display: none; }
    .b0-p-article .b0-p-article__tocm { display: block; }
}
@media (max-width: 760px) {
    .b0-p-article .b0-p-article__head h1 { font-size: 28px; }
    .b0-p-article .b0-p-article__head .b0-phero__lead { font-size: 16px; }
    .b0-p-article .b0-p-article__main { padding: 22px 20px; border-radius: 16px; }
    .b0-p-article .b0-prose h2 { font-size: 21px; }
}
@media (max-width: 640px) {
    .b0-p-article .b0-p-article__main { padding: 18px 16px; }
    .b0-p-article .b0-p-article__ask .b0-btn { width: 100%; }
    .b0-p-article .b0-topic { padding: 16px; }
}

/* Trang /gioi-thieu — bảng B1 "Giới thiệu ESAT PREP". Mọi selector bắt đầu bằng .b0-p-gioithieu để
   không đụng trang khác khi gộp vào bundle ~/resources/css/b0. Token màu lấy từ b0.css. */
.b0-p-gioithieu__cta { display: flex; flex-wrap: wrap; gap: 10px; }
.b0-p-gioithieu .b0-section { padding-bottom: 8px; }
.b0-p-gioithieu__head { display: flex; flex-direction: column; gap: 6px; }
.b0-p-gioithieu__head h2 { font-size: 28px; font-weight: 800; line-height: 1.2; }

/* Người sáng lập: chữ trái, ảnh phải (thiết kế 1.1fr / 0.9fr) */
.b0-p-gioithieu__founder { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 40px; align-items: start; }
.b0-p-gioithieu__founder-text { display: flex; flex-direction: column; gap: 14px; }
.b0-p-gioithieu__founder-text > p { font-size: 15px; line-height: 1.65; color: var(--b0-text-2); }
.b0-p-gioithieu__founder-text em { color: var(--b0-navy); font-weight: 600; }
.b0-p-gioithieu__founder-media { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.b0-p-gioithieu__photo { margin: 0; border-radius: 18px; overflow: hidden; background: var(--b0-line); border: 1px solid var(--b0-line); position: relative; }
/* Ảnh gốc 4:3 có chữ "SAT DIGITAL 2023" ở mép trên — khung 16:10 neo đáy cắt dòng chữ đó đi. */
.b0-p-gioithieu__photo img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: 50% 100%; }
.b0-p-gioithieu__photo figcaption { position: absolute; left: 12px; bottom: 12px; padding: 6px 12px; border-radius: 999px; background: rgba(11, 42, 91, .88); color: #fff; font-size: 12.5px; font-weight: 600; }
.b0-p-gioithieu__hof { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.b0-p-gioithieu__hof li { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.b0-p-gioithieu__hof img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; object-position: center 25%; border-radius: 12px; background: var(--b0-line); }
.b0-p-gioithieu__hof span { display: flex; flex-direction: column; font-size: 11.5px; line-height: 1.3; color: var(--b0-muted); }
.b0-p-gioithieu__hof strong { font-size: 16px; font-weight: 800; color: var(--b0-red); }

/* Quan điểm đào tạo: dải nền trắng full-width */
.b0-p-gioithieu__view { margin-top: 48px; background: #fff; border-top: 1px solid var(--b0-line); border-bottom: 1px solid var(--b0-line); }
.b0-p-gioithieu__view > .b0-wrap { padding-top: 48px; padding-bottom: 48px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: start; }
.b0-p-gioithieu__view-text { display: flex; flex-direction: column; gap: 16px; }
.b0-p-gioithieu__view-text > p { font-size: 15px; line-height: 1.65; color: var(--b0-text-2); }
.b0-p-gioithieu__view .b0-checks { font-size: 14.5px; gap: 10px; }
.b0-p-gioithieu__principles { background: var(--b0-bg); border: 1px solid var(--b0-line); border-radius: 18px; padding: 22px 24px; display: flex; flex-direction: column; gap: 14px; }
.b0-p-gioithieu__principles > strong { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--b0-muted); }
.b0-p-gioithieu__principles ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.b0-p-gioithieu__principles li { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 12px; align-items: start; }
.b0-p-gioithieu__principles li > span { width: 32px; height: 32px; border-radius: 50%; background: var(--b0-red); color: #fff; font-weight: 800; font-size: 14px; display: inline-flex; align-items: center; justify-content: center; }
.b0-p-gioithieu__principles b { display: block; font-size: 15px; color: var(--b0-navy); }
.b0-p-gioithieu__principles small { display: block; margin-top: 2px; font-size: 13.5px; line-height: 1.5; color: var(--b0-muted); }

/* Liên hệ */
.b0-p-gioithieu__contact { background: #fff; border: 1px solid var(--b0-line); border-radius: 18px; padding: 26px 28px; display: flex; flex-direction: column; gap: 18px; }
.b0-p-gioithieu__contact-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 28px; font-size: 14.5px; color: var(--b0-text); }
.b0-p-gioithieu__contact-list li { display: flex; gap: 12px; align-items: flex-start; min-width: 0; }
.b0-p-gioithieu__contact-list li > span { width: 36px; height: 36px; border-radius: 50%; background: var(--b0-red-soft); color: var(--b0-red); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.b0-p-gioithieu__contact-list li > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; overflow-wrap: anywhere; }
.b0-p-gioithieu__contact-list small { font-size: 12px; color: var(--b0-muted); }
.b0-p-gioithieu .b0-p-gioithieu__contact-list a { color: var(--b0-navy); font-weight: 600; }
.b0-p-gioithieu .b0-p-gioithieu__contact-list a:hover { color: var(--b0-red); }
.b0-p-gioithieu__contact-cta { display: flex; flex-wrap: wrap; gap: 10px; }

.b0-p-gioithieu__posts { padding-bottom: 56px; }

@media (max-width: 1080px) {
    .b0-p-gioithieu__founder, .b0-p-gioithieu__view > .b0-wrap { gap: 28px; }
}
@media (max-width: 760px) {
    .b0-p-gioithieu__founder, .b0-p-gioithieu__view > .b0-wrap { grid-template-columns: 1fr; }
    .b0-p-gioithieu__view > .b0-wrap { padding-top: 36px; padding-bottom: 36px; }
    .b0-p-gioithieu__contact-list { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .b0-p-gioithieu__head h2 { font-size: 24px; }
    .b0-p-gioithieu__cta .b0-btn, .b0-p-gioithieu__contact-cta .b0-btn { width: 100%; }
    .b0-p-gioithieu__hof { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .b0-p-gioithieu__contact { padding: 20px 18px; }
    .b0-p-gioithieu__principles { padding: 18px; }
}

/* Trang /khoa-hoc-sat-tai-esat — bảng B2 "Khóa học ESAT PREP". Mọi selector bắt đầu bằng .b0-p-khoahoc
   để không đụng trang khác khi gộp vào bundle ~/resources/css/b0. Token màu lấy từ b0.css. */
.b0-p-khoahoc__cta { display: flex; flex-wrap: wrap; gap: 10px; }
.b0-p-khoahoc .b0-section { padding-bottom: 8px; }
.b0-p-khoahoc__head { display: flex; flex-direction: column; gap: 6px; }
.b0-p-khoahoc__head h2 { font-size: 28px; font-weight: 800; line-height: 1.2; }
.b0-p-khoahoc__head p { font-size: 14.5px; color: var(--b0-text-2); max-width: 720px; }

/* Bảng chọn khóa */
.b0-p-khoahoc__table td:first-child { color: var(--b0-text-2); }
.b0-p-khoahoc .b0-p-khoahoc__table a { color: var(--b0-navy); font-weight: 700; text-decoration: underline; text-decoration-color: var(--b0-line-2); text-underline-offset: 3px; }
.b0-p-khoahoc .b0-p-khoahoc__table a:hover { color: var(--b0-red); text-decoration-color: currentColor; }
.b0-p-khoahoc__table strong { color: var(--b0-red); white-space: nowrap; }

/* Lưới thẻ khóa học */
.b0-p-khoahoc__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.b0-p-khoahoc__course { background: #fff; border: 1px solid var(--b0-line); border-radius: 18px; padding: 14px 14px 18px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.b0-p-khoahoc__thumb { display: block; border-radius: 12px; overflow: hidden; background: var(--b0-line); aspect-ratio: 16 / 9; }
.b0-p-khoahoc__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.b0-p-khoahoc__course .b0-tag { align-self: flex-start; }
.b0-p-khoahoc__course h3 { font-size: 17px; font-weight: 700; line-height: 1.35; letter-spacing: 0; }
.b0-p-khoahoc .b0-p-khoahoc__course h3 a:hover { color: var(--b0-red); }
.b0-p-khoahoc__course > p { font-size: 13.5px; line-height: 1.55; color: var(--b0-muted); }
.b0-p-khoahoc__course dl { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; padding: 12px 0; border-top: 1px solid var(--b0-line); border-bottom: 1px solid var(--b0-line); }
.b0-p-khoahoc__course dl div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.b0-p-khoahoc__course dt { font-size: 11.5px; color: var(--b0-muted); }
.b0-p-khoahoc__course dd { margin: 0; font-size: 13.5px; font-weight: 700; color: var(--b0-navy); }
.b0-p-khoahoc__foot { margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.b0-p-khoahoc__ask { font-size: 12.5px; color: var(--b0-muted); flex: 1 1 140px; }
.b0-p-khoahoc__fee { display: flex; flex-direction: column; }
.b0-p-khoahoc__fee small { font-size: 11.5px; color: var(--b0-muted); }
.b0-p-khoahoc__fee strong { font-size: 18px; font-weight: 800; color: var(--b0-red); }
.b0-p-khoahoc__note { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; border-radius: 14px; background: var(--b0-navy-soft); border: 1px solid var(--b0-line); font-size: 14px; color: var(--b0-text-2); }
.b0-p-khoahoc .b0-p-khoahoc__note a:not(.b0-btn) { color: var(--b0-navy); }

/* Các bước */
.b0-p-khoahoc__steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.b0-p-khoahoc__steps li { background: #fff; border: 1px solid var(--b0-line); border-radius: 16px; padding: 18px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.b0-p-khoahoc__steps li > span { width: 34px; height: 34px; border-radius: 50%; background: var(--b0-red); color: #fff; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }
.b0-p-khoahoc__steps strong { display: block; font-size: 15px; color: var(--b0-navy); line-height: 1.35; }
.b0-p-khoahoc__steps small { display: block; margin-top: 6px; font-size: 13.5px; line-height: 1.55; color: var(--b0-text-2); }
.b0-p-khoahoc .b0-p-khoahoc__steps a { color: var(--b0-red); font-weight: 600; }
.b0-p-khoahoc__policy { flex-direction: row; flex-wrap: wrap; gap: 10px 28px; font-size: 14px; }

.b0-p-khoahoc__others { padding-bottom: 24px; }
.b0-p-khoahoc > .b0-wrap:last-child { padding-bottom: 48px; }

@media (max-width: 1080px) {
    .b0-p-khoahoc__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .b0-p-khoahoc__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .b0-p-khoahoc__grid { grid-template-columns: 1fr; }
    .b0-p-khoahoc__policy { flex-direction: column; }
}
@media (max-width: 640px) {
    .b0-p-khoahoc__head h2 { font-size: 24px; }
    .b0-p-khoahoc__cta .b0-btn { width: 100%; }
    .b0-p-khoahoc__steps { grid-template-columns: 1fr; }
    .b0-p-khoahoc__note .b0-btn { width: 100%; }
    .b0-p-khoahoc__table { min-width: 560px; }
}

/* B5 · Đề thi SAT từng đợt (/de-thi-sat trang 1). Mọi selector bắt đầu bằng .b0-p-dethi để không
   đụng trang khác khi gộp vào bundle chung. Token màu lấy từ b0.css. */

/* Link trong đoạn giới thiệu chuyên mục (HTML từ news_Categories.Description) — hero chung không tô
   link, mà đoạn này có link "làm đề thi SAT online" cần nhìn ra được. */
.b0-p-dethi .b0-phero__lead a { color: var(--b0-red); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

/* Một hàng = một đợt thi: khối ngày navy | nội dung | nút */
.b0-p-dethi .dt-dot { background: #fff; border: 1px solid var(--b0-line); border-radius: 18px; padding: 18px; display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; gap: 20px; align-items: center; }
.b0-p-dethi .dt-dot__date { background: var(--b0-navy); color: #fff; border-radius: 14px; padding: 16px 10px; display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; }
.b0-p-dethi .dt-dot__date strong { font-size: 22px; font-weight: 800; line-height: 1.05; }
.b0-p-dethi .dt-dot__date span { font-size: 12px; color: var(--b0-navy-muted); font-weight: 600; }
.b0-p-dethi .dt-dot__body { min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.b0-p-dethi .dt-dot__body h3 { font-size: 17px; font-weight: 700; line-height: 1.35; letter-spacing: 0; }
.b0-p-dethi .dt-dot__body h3 a:hover { color: var(--b0-red); }
.b0-p-dethi .dt-dot__body p { font-size: 13.5px; line-height: 1.55; color: var(--b0-muted); }
.b0-p-dethi .dt-dot__links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.b0-p-dethi .dt-dot__links a { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; border-radius: 999px; background: var(--b0-bg); font-size: 12.5px; font-weight: 600; color: var(--b0-text); }
.b0-p-dethi .dt-dot__links a:hover { background: var(--b0-red-soft); color: var(--b0-red); }
.b0-p-dethi .dt-dot__meta { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: var(--b0-muted); }
.b0-p-dethi .dt-dot__meta .b0-ico { width: 14px; height: 14px; }
.b0-p-dethi .dt-dot__actions { display: flex; flex-direction: column; align-items: stretch; gap: 6px; }
.b0-p-dethi .dt-btn-navy { background: var(--b0-navy); color: #fff; min-height: 46px; white-space: nowrap; }
.b0-p-dethi .dt-btn-navy:hover { background: var(--b0-navy-2); color: #fff; }
.b0-p-dethi .dt-dot__test { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 40px; font-size: 13px; font-weight: 700; color: var(--b0-test); white-space: nowrap; }
.b0-p-dethi .dt-dot__test:hover { color: #D85C10; }
.b0-p-dethi .dt-dot__test .b0-ico { width: 16px; height: 16px; }
.b0-p-dethi .dt-empty { color: var(--b0-muted); }

/* Aside */
.b0-p-dethi .dt-struct { list-style: none; margin: 0; padding: 0; font-size: 13.5px; }
.b0-p-dethi .dt-struct li { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid #EEF2F7; }
.b0-p-dethi .dt-struct li:last-child { border-bottom: 0; }
.b0-p-dethi .dt-struct span { color: var(--b0-text-2); }
.b0-p-dethi .dt-struct strong { color: var(--b0-navy); text-align: right; }
.b0-p-dethi .dt-sidelink { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; color: var(--b0-red); }
.b0-p-dethi .dt-sidelink:hover { color: var(--b0-red-dark); }
.b0-p-dethi .dt-sidelink .b0-ico { width: 16px; height: 16px; }
.b0-p-dethi .dt-docs { list-style: none; margin: 0; padding: 0; }
.b0-p-dethi .dt-docs a { display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: 13.5px; color: var(--b0-text); border-bottom: 1px solid #EEF2F7; }
.b0-p-dethi .dt-docs li:last-child a { border-bottom: 0; }
.b0-p-dethi .dt-docs a:hover { color: var(--b0-red); }
.b0-p-dethi .dt-docs span { display: inline-flex; color: var(--b0-red); }

/* Lịch thi: thẻ dẫn tới bài lịch thi thật */
.b0-p-dethi .dt-lich > .b0-wrap { padding-bottom: 56px; display: flex; flex-direction: column; gap: 20px; }
.b0-p-dethi .dt-lich__card { background: #fff; border: 1px solid var(--b0-line); border-radius: 18px; overflow: hidden; display: grid; grid-template-columns: 320px minmax(0, 1fr); }
.b0-p-dethi .dt-lich__card img { width: 100%; height: 100%; min-height: 180px; object-fit: cover; display: block; background: var(--b0-navy-soft); }
.b0-p-dethi .dt-lich__body { padding: 24px; display: flex; flex-direction: column; gap: 10px; justify-content: center; }
.b0-p-dethi .dt-lich__body strong { font-size: 20px; color: var(--b0-navy); line-height: 1.3; }
.b0-p-dethi .dt-lich__body > span { font-size: 14px; line-height: 1.6; color: var(--b0-text-2); }
.b0-p-dethi .dt-lich__body .dt-lich__more { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; color: var(--b0-red); }
.b0-p-dethi .dt-lich__card:hover strong { color: var(--b0-red); }

@media (max-width: 1080px) {
    .b0-p-dethi .dt-dot { grid-template-columns: 96px minmax(0, 1fr); }
    .b0-p-dethi .dt-dot__actions { grid-column: 2; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px; }
}
@media (max-width: 760px) {
    .b0-p-dethi .dt-dot { grid-template-columns: 1fr; gap: 14px; padding: 16px; }
    .b0-p-dethi .dt-dot__date { flex-direction: row; justify-content: flex-start; gap: 10px; padding: 10px 14px; }
    .b0-p-dethi .dt-dot__date strong { font-size: 18px; }
    .b0-p-dethi .dt-dot__actions { grid-column: auto; flex-direction: column; align-items: stretch; }
    .b0-p-dethi .dt-lich__card { grid-template-columns: 1fr; }
    .b0-p-dethi .dt-lich__card img { height: 180px; }
}
@media (max-width: 640px) {
    .b0-p-dethi .dt-btn-navy { white-space: normal; }
    .b0-p-dethi .dt-lich__body { padding: 18px; }
    .b0-p-dethi .dt-lich__body strong { font-size: 18px; }
}

/* B7 · Trường học (/truong-hoc trang 1). Mọi selector bắt đầu bằng .b0-p-truonghoc để không đụng
   trang khác khi gộp vào bundle chung. Token màu lấy từ b0.css. */

/* Link trong đoạn giới thiệu chuyên mục (HTML từ news_Categories.Description). */
.b0-p-truonghoc .b0-phero__lead a { color: var(--b0-red); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

.b0-p-truonghoc .th-sec { padding-top: 48px; display: flex; flex-direction: column; gap: 20px; }
.b0-p-truonghoc .th-sub { font-size: 15px; color: var(--b0-muted); max-width: 680px; }
.b0-p-truonghoc .th-empty { color: var(--b0-muted); }

/* #ivy: lưới 4 cột thẻ gọn (ảnh + tiêu đề + ngày) */
.b0-p-truonghoc .th-ivy { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.b0-p-truonghoc .th-ivy__card { height: 100%; background: #fff; border: 1px solid var(--b0-line); border-radius: 18px; padding: 12px; display: flex; flex-direction: column; gap: 10px; }
.b0-p-truonghoc .th-ivy__thumb { display: block; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: var(--b0-navy-soft); }
.b0-p-truonghoc .th-ivy__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.b0-p-truonghoc .th-ivy__card strong { font-size: 15px; line-height: 1.35; color: var(--b0-navy); }
.b0-p-truonghoc .th-ivy__card:hover strong { color: var(--b0-red); }
.b0-p-truonghoc .th-ivy__card time { margin-top: auto; display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: var(--b0-muted); }
.b0-p-truonghoc .th-ivy__card time .b0-ico { width: 14px; height: 14px; }

/* #us: danh sách hàng ngang 2 cột (ảnh 96px + tiêu đề + ngày) */
.b0-p-truonghoc .th-us { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.b0-p-truonghoc .th-us__row { height: 100%; background: #fff; border: 1px solid var(--b0-line); border-radius: 16px; padding: 12px; display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 14px; align-items: center; }
.b0-p-truonghoc .th-us__thumb { display: block; height: 72px; border-radius: 10px; overflow: hidden; background: var(--b0-navy-soft); }
.b0-p-truonghoc .th-us__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.b0-p-truonghoc .th-us__text { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.b0-p-truonghoc .th-us__text strong { font-size: 14.5px; line-height: 1.35; color: var(--b0-navy); }
.b0-p-truonghoc .th-us__row:hover strong { color: var(--b0-red); }
.b0-p-truonghoc .th-us__text time { font-size: 12.5px; color: var(--b0-muted); }
.b0-p-truonghoc .th-us__guide { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 14px; font-weight: 700; color: var(--b0-red); }
.b0-p-truonghoc .th-us__guide:hover { color: var(--b0-red-dark); }

/* #vn: dải nền trắng full-width */
.b0-p-truonghoc .th-vn { margin-top: 48px; background: #fff; border-top: 1px solid var(--b0-line); border-bottom: 1px solid var(--b0-line); }
.b0-p-truonghoc .th-vn > .b0-wrap { padding-top: 48px; padding-bottom: 48px; display: flex; flex-direction: column; gap: 22px; }
.b0-p-truonghoc .th-vn .b0-h2row p { font-size: 15px; color: var(--b0-muted); max-width: 680px; }
.b0-p-truonghoc .th-vn .b0-btn { min-height: 46px; }
.b0-p-truonghoc .th-vn__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.b0-p-truonghoc .th-vn__grid a { height: 100%; background: #F8FAFC; border: 1px solid var(--b0-line); border-radius: 14px; padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; }
.b0-p-truonghoc .th-vn__grid a:hover { border-color: var(--b0-red); }
.b0-p-truonghoc .th-vn__grid strong { font-size: 14.5px; line-height: 1.35; color: var(--b0-navy); }
.b0-p-truonghoc .th-vn__grid span { font-size: 12.5px; color: var(--b0-muted); }
.b0-p-truonghoc .th-vn__post { background: var(--b0-bg); border: 1px solid var(--b0-line); border-radius: 16px; overflow: hidden; display: grid; grid-template-columns: 240px minmax(0, 1fr); align-items: center; }
.b0-p-truonghoc .th-vn__post img { width: 100%; height: 100%; min-height: 120px; object-fit: cover; display: block; }
.b0-p-truonghoc .th-vn__post > span { padding: 16px 20px; display: flex; flex-direction: column; gap: 6px; }
.b0-p-truonghoc .th-vn__post strong { font-size: 17px; line-height: 1.35; color: var(--b0-navy); }
.b0-p-truonghoc .th-vn__post:hover strong { color: var(--b0-red); }
.b0-p-truonghoc .th-vn__post > span > span { font-size: 14px; line-height: 1.55; color: var(--b0-text-2); }

/* Tất cả bài viết + pager: chừa khoảng trước dải CTA */
.b0-p-truonghoc #bai-viet { padding-bottom: 56px; }

@media (max-width: 1080px) {
    .b0-p-truonghoc .th-ivy, .b0-p-truonghoc .th-vn__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .b0-p-truonghoc .th-ivy, .b0-p-truonghoc .th-vn__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .b0-p-truonghoc .th-us { grid-template-columns: 1fr; }
    .b0-p-truonghoc .th-vn__post { grid-template-columns: 1fr; }
    .b0-p-truonghoc .th-vn__post img { height: 160px; }
}
@media (max-width: 640px) {
    .b0-p-truonghoc .th-sec { padding-top: 36px; }
    .b0-p-truonghoc .th-vn { margin-top: 36px; }
    .b0-p-truonghoc .th-vn > .b0-wrap { padding-top: 36px; padding-bottom: 36px; }
    .b0-p-truonghoc .th-vn .b0-btn { width: 100%; }
    .b0-p-truonghoc .th-ivy { grid-template-columns: 1fr; }
    .b0-p-truonghoc .th-vn__grid { grid-template-columns: 1fr; }
    .b0-p-truonghoc .b0-h2row h2 { font-size: 24px; }
}

/* B6 · Quy đổi điểm SAT (công cụ) — dùng chung cho 3 trang công cụ trong giao diện B0:
   /quy-doi-diem-sat, /quy-doi-diem-sat/{truong}, /tinh-diem-sat.
   Mọi selector bắt đầu bằng .b0-p-quydoi để không đụng trang khác.

   Vì sao vẫn còn class hs-qd-* / hs-td-*: quy-doi-diem-sat.js và tinh-diem-sat.js chọn phần tử
   và SINH markup bằng đúng các class đó (cả .form-control, .col-sm-4, .text-center, .mb-5 trong
   HTML do JS dựng). _LayoutB0 không nạp Bootstrap nên các class đó được định nghĩa lại ở đây,
   trong phạm vi trang, thay vì sửa JS (JS còn khớp với bảng chấm sattest, càng ít đụng càng tốt). */

.b0-p-quydoi { --qd-soft: #F8FAFC; --qd-warn: #FFF4E0; }

/* ---------- Khung công cụ ---------- */
.b0-p-quydoi .hs-qd-box { background: #fff; border: 1px solid var(--b0-line); border-radius: 18px; overflow: hidden; }
.b0-p-quydoi .hs-qd-tabs { list-style: none; margin: 0; padding: 0 12px; display: flex; flex-wrap: wrap; border-bottom: 1px solid var(--b0-line); }
.b0-p-quydoi .hs-qd-tabs a { display: inline-flex; align-items: center; min-height: 52px; padding: 0 14px; font-size: 14px; font-weight: 700; color: var(--b0-muted); border-bottom: 2px solid transparent; margin-bottom: -1px; }
.b0 .b0-p-quydoi .hs-qd-tabs a:hover { color: var(--b0-navy); }
.b0 .b0-p-quydoi .hs-qd-tabs li.active a { color: var(--b0-red); border-bottom-color: var(--b0-red); }
/* Pane tự quản lý bằng class .active (JS), không dùng .tab-pane của Bootstrap. */
.b0-p-quydoi .hs-qd-pane { display: none; }
.b0-p-quydoi .hs-qd-pane.active { display: block; }

/* ---------- Form nhập ---------- */
.b0-p-quydoi .hs-qd-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 20px; padding: 20px 24px; background: var(--qd-soft); align-items: start; }
.b0-p-quydoi .hs-qd-form--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
/* #hs-qd-thanhphan (HCMUT) do JS đổ các .col-sm-4 vào — lưới tự xếp. */
.b0-p-quydoi .hs-qd-form > div { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.b0-p-quydoi .hs-qd-form label { font-size: 13px; font-weight: 700; color: var(--b0-navy); line-height: 1.4; }
.b0-p-quydoi .hs-qd-input,
.b0-p-quydoi .form-control { width: 100%; min-height: 52px; padding: 0 14px; border: 1px solid var(--b0-line-2); border-radius: 12px; background: #fff; font: inherit; font-size: 15px; color: var(--b0-navy); }
.b0-p-quydoi .hs-qd-input:focus,
.b0-p-quydoi .form-control:focus { outline: none; border-color: var(--b0-navy); box-shadow: 0 0 0 3px var(--b0-navy-soft); }
.b0-p-quydoi .hs-qd-input--big { font-size: 22px; font-weight: 800; }
.b0-p-quydoi .hs-qd-form input[type="range"] { width: 100%; accent-color: var(--b0-red); margin: 4px 0 0; }
.b0-p-quydoi .hs-qd-hint { font-size: 12px; color: var(--b0-muted); line-height: 1.5; }
.b0-p-quydoi .hs-qd-meta { justify-content: flex-end; align-self: stretch; font-size: 12.5px; color: var(--b0-muted); line-height: 1.5; }
.b0-p-quydoi .hs-qd-meta strong { color: var(--b0-navy); }

/* Khối thành phần điểm HCMUT */
.b0-p-quydoi .hs-qd-sub { background: var(--qd-soft); border-top: 1px solid var(--b0-line); padding-top: 16px; }
.b0-p-quydoi .hs-qd-sub-title { padding: 0 24px; font-size: 13px; color: var(--b0-text-2); }
.b0-p-quydoi .hs-qd-sub .hs-qd-form { padding-top: 12px; }

/* ---------- Bảng (kết quả JS + bảng tĩnh) ---------- */
.b0-p-quydoi .hs-qd-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.b0-p-quydoi .hs-qd-box .hs-qd-scroll { border-top: 1px solid var(--b0-line); }
.b0-p-quydoi .hs-qd-table th { background: #fff; vertical-align: middle; }
.b0-p-quydoi .hs-qd-table td { vertical-align: middle; }
.b0-p-quydoi .text-center { text-align: center; }
.b0-p-quydoi .hs-qd-table th.text-center { text-align: center; }
.b0-p-quydoi .mb-5 { margin-bottom: 5px; }
.b0-p-quydoi .hs-qd-row:hover > td { background: #FBFCFE; }
.b0-p-quydoi .hs-qd-row td:first-child strong { color: var(--b0-navy); }
.b0-p-quydoi .hs-qd-pt { font-size: 12.5px; color: var(--b0-muted); margin-top: 2px; }
.b0-p-quydoi .hs-qd-diem { font-size: 18px; font-weight: 800; color: var(--b0-red); line-height: 1.1; }
.b0-p-quydoi .hs-qd-thang { font-size: 13px; color: var(--b0-muted); margin-left: 2px; }
.b0-p-quydoi .hs-qd-chua { color: #94A3B8; }
.b0-p-quydoi .hs-qd-note { font-size: 12px; color: var(--b0-muted); line-height: 1.45; margin-top: 4px; }
/* Nhãn năm: xanh = số liệu 2026, cam = mùa trước chưa công bố lại (theo canvas B6). */
.b0-p-quydoi .hs-qd-nam { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 11.5px; font-weight: 700; background: var(--b0-class-soft); color: var(--b0-class); vertical-align: middle; }
.b0-p-quydoi .hs-qd-nam-cu { background: var(--b0-test-soft); color: var(--b0-test); }
.b0-p-quydoi .hs-qd-badge { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.b0-p-quydoi .hs-qd-ok { background: var(--b0-class-soft); color: var(--b0-class); }
.b0-p-quydoi .hs-qd-no { background: var(--b0-red-soft); color: var(--b0-red); }
.b0-p-quydoi .hs-qd-toggle { min-height: 36px; padding: 0 12px; border: 1px solid var(--b0-line-2); border-radius: 10px; background: #fff; font: inherit; font-size: 13px; font-weight: 700; color: var(--b0-navy); cursor: pointer; white-space: nowrap; }
.b0-p-quydoi .hs-qd-toggle:hover { border-color: var(--b0-navy); }
.b0-p-quydoi .hs-qd-detail { display: none; }
.b0-p-quydoi .hs-qd-detail > td { background: var(--qd-soft); border-top: 0; padding: 14px 20px 18px; }
.b0-p-quydoi .hs-qd-buoc { margin: 0 0 10px; padding-left: 20px; font-size: 14px; line-height: 1.7; color: var(--b0-text-2); }
.b0-p-quydoi .hs-qd-dk { font-size: 13px; color: var(--b0-text-2); line-height: 1.55; margin-bottom: 6px; }
.b0-p-quydoi .hs-qd-dk a { color: var(--b0-red); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

/* Kết quả quy đổi ngược */
.b0-p-quydoi .hs-qd-nguoc-kq { margin: 0 24px 24px; padding: 16px 20px; border-left: 4px solid var(--b0-red); border-radius: 0 12px 12px 0; background: var(--qd-soft); font-size: 15px; line-height: 1.6; color: var(--b0-text); }
.b0-p-quydoi .hs-qd-pane > .hs-qd-form + .hs-qd-nguoc-kq { margin-top: 20px; }

/* Ô cảnh báo số liệu (vàng nhạt như canvas) */
.b0-p-quydoi .hs-qd-disclaimer { background: var(--qd-warn); border: 1px solid #FBD38D; border-radius: 14px; padding: 14px 18px; font-size: 13px; line-height: 1.6; color: var(--b0-text-2); }
.b0-p-quydoi .hs-qd-disclaimer strong { color: var(--b0-navy); }
.b0-p-quydoi .hs-qd-disclaimer a { color: var(--b0-red); font-weight: 600; }

/* ---------- Khối nội dung ---------- */
.b0-p-quydoi .qd-sec { display: flex; flex-direction: column; gap: 18px; padding-top: 20px; }
.b0-p-quydoi .qd-sec__head { display: flex; flex-direction: column; gap: 6px; }
.b0-p-quydoi .qd-sec__head h2 { font-size: 28px; font-weight: 800; }
.b0-p-quydoi .qd-sec__head p { font-size: 15px; color: var(--b0-muted); max-width: 680px; line-height: 1.6; }
.b0-p-quydoi .qd-text { font-size: 15px; line-height: 1.7; color: var(--b0-text); max-width: 900px; display: flex; flex-direction: column; gap: 12px; }
.b0-p-quydoi .qd-text ul, .b0-p-quydoi .qd-text ol { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 6px; }
.b0-p-quydoi .qd-text a { color: var(--b0-red); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.b0 .b0-p-quydoi .qd-text a:hover { color: var(--b0-red-dark); }
.b0-p-quydoi .qd-formula { margin: 0; padding: 14px 18px; border-radius: 12px; background: var(--b0-navy); color: #fff; font-family: ui-monospace, Consolas, monospace; font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
.b0-p-quydoi .qd-formula p + p { margin-top: 6px; font-family: inherit; color: var(--b0-navy-muted); }

/* Thẻ "Bốn cơ chế": 2 cột */
.b0-p-quydoi .qd-mechs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.b0-p-quydoi .qd-mech { background: #fff; border: 1px solid var(--b0-line); border-radius: 18px; padding: 22px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.b0-p-quydoi .qd-mech--wide { grid-column: 1 / -1; }
.b0-p-quydoi .qd-mech__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.b0-p-quydoi .qd-mech h3 { font-size: 17px; font-weight: 800; }
.b0-p-quydoi .qd-pill { padding: 3px 10px; border-radius: 999px; background: #E0E9F7; color: var(--b0-navy); font-size: 11.5px; font-weight: 700; }
.b0-p-quydoi .qd-mech p { font-size: 14px; line-height: 1.6; color: var(--b0-text-2); }
.b0-p-quydoi .qd-mech p strong { color: var(--b0-text); }
.b0-p-quydoi .qd-more { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; min-height: 36px; font-size: 13px; font-weight: 700; color: var(--b0-red); }
.b0 .b0-p-quydoi a.qd-more:hover { color: var(--b0-red-dark); }
.b0-p-quydoi .qd-more .b0-ico { width: 16px; height: 16px; }

/* Bảng tĩnh (trang từng trường, bảng câu sai) */
.b0-p-quydoi .qd-facts th { width: 36%; background: var(--qd-soft); border-top: 1px solid var(--b0-line); color: var(--b0-navy); }
.b0-p-quydoi .qd-facts tr:first-child th, .b0-p-quydoi .qd-facts tr:first-child td { border-top: 0; }
.b0-p-quydoi .b0-table a { color: var(--b0-red); font-weight: 600; }
.b0-p-quydoi .b0-table small { color: var(--b0-muted); }

/* FAQ + miễn trừ */
.b0-p-quydoi .qd-faq { max-width: 900px; }
.b0-p-quydoi .qd-legal { max-width: 900px; font-size: 12.5px; line-height: 1.65; color: var(--b0-muted); display: flex; flex-direction: column; gap: 8px; }
.b0-p-quydoi .qd-legal h2 { font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--b0-text-2); }
.b0-p-quydoi .qd-legal strong { color: var(--b0-text-2); }
.b0-p-quydoi .qd-legal a { color: var(--b0-navy); text-decoration: underline; }

/* ---------- Riêng /tinh-diem-sat (class hs-td-* do tinh-diem-sat.js dùng/sinh) ---------- */
.b0-p-quydoi .hs-td-input { display: flex; align-items: stretch; }
.b0-p-quydoi .hs-td-input .hs-qd-input { border-radius: 0; text-align: center; font-size: 18px; font-weight: 700; min-width: 0; }
.b0-p-quydoi .hs-td-step { flex: 0 0 48px; border: 1px solid var(--b0-line-2); background: #fff; color: var(--b0-navy); font: inherit; font-size: 20px; font-weight: 700; line-height: 1; cursor: pointer; }
.b0-p-quydoi .hs-td-step:first-child { border-right: 0; border-radius: 12px 0 0 12px; }
.b0-p-quydoi .hs-td-step:last-child { border-left: 0; border-radius: 0 12px 12px 0; }
.b0-p-quydoi .hs-td-step:hover { background: var(--b0-navy-soft); }
.b0-p-quydoi .hs-td-ketqua { margin: 0 24px 24px; padding: 22px 24px; border-left: 4px solid var(--b0-red); border-radius: 0 14px 14px 0; background: var(--qd-soft); color: var(--b0-text-2); font-size: 14px; }
.b0-p-quydoi .hs-td-form + .hs-td-ketqua { margin-top: 20px; }
.b0-p-quydoi .hs-td-tong { line-height: 1; margin-bottom: 14px; }
.b0-p-quydoi .hs-td-so { font-size: 46px; font-weight: 800; color: var(--b0-navy); letter-spacing: -0.02em; }
.b0-p-quydoi .hs-td-tren { font-size: 18px; color: var(--b0-muted); margin-left: 6px; }
.b0-p-quydoi .hs-td-phan { display: flex; flex-wrap: wrap; gap: 8px 32px; margin-bottom: 14px; font-size: 15px; color: var(--b0-text); }
.b0-p-quydoi .hs-td-phan strong { font-size: 22px; color: var(--b0-navy); margin-right: 4px; }
.b0-p-quydoi .hs-td-phan small { color: var(--b0-muted); }
.b0-p-quydoi .hs-td-vitri, .b0-p-quydoi .hs-td-moc, .b0-p-quydoi .hs-td-next { margin: 0 0 8px; font-size: 15px; line-height: 1.6; color: var(--b0-text); }
.b0-p-quydoi .hs-td-next a { color: var(--b0-red); font-weight: 700; }
.b0 .b0-p-quydoi .hs-td-next a:hover { color: var(--b0-red-dark); text-decoration: underline; }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
    .b0-p-quydoi .hs-qd-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .b0-p-quydoi .hs-qd-meta { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
    .b0-p-quydoi .qd-mechs { grid-template-columns: 1fr; }
    .b0-p-quydoi .qd-sec__head h2 { font-size: 24px; }
    /* Bảng kết quả 4 cột cuộn ngang trong khung, không làm body cuộn ngang. */
    .b0-p-quydoi .hs-qd-box .hs-qd-table { min-width: 620px; }
}
@media (max-width: 640px) {
    .b0-p-quydoi .hs-qd-form,
    .b0-p-quydoi .hs-qd-form--2 { grid-template-columns: 1fr; padding: 16px; }
    .b0-p-quydoi .hs-qd-sub-title { padding: 0 16px; }
    .b0-p-quydoi .hs-qd-tabs { padding: 0 4px; }
    .b0-p-quydoi .hs-qd-tabs a { padding: 0 10px; font-size: 13px; min-height: 48px; }
    .b0-p-quydoi .hs-qd-nguoc-kq, .b0-p-quydoi .hs-td-ketqua { margin: 0 16px 16px; padding: 16px; }
    .b0-p-quydoi .hs-td-so { font-size: 38px; }
    .b0-p-quydoi .qd-mech { padding: 18px; }
    .b0-p-quydoi .qd-facts th { width: 42%; }
    .b0-p-quydoi .b0-table th, .b0-p-quydoi .b0-table td { padding: 10px; }
}

/* B8 · Câu hỏi thường gặp (/faq) trong giao diện B0. Mọi selector bắt đầu bằng .b0-p-faq
   (ô tìm nằm trong hero dùng chung nên mang luôn class .b0-p-faq: .b0-p-faq.faq-search). */

/* Ô "Tìm câu hỏi" trong hero */
.b0-p-faq.faq-search { display: flex; flex-direction: column; gap: 6px; max-width: 560px; font-size: 13px; color: var(--b0-muted); }
.b0-p-faq.faq-search label { font-weight: 600; }
.b0-p-faq.faq-search input { width: 100%; min-height: 48px; padding: 0 16px; border: 1px solid var(--b0-line-2); border-radius: 12px; background: #fff; font: inherit; font-size: 15px; color: var(--b0-text); }
.b0-p-faq.faq-search input:focus { outline: none; border-color: var(--b0-navy); box-shadow: 0 0 0 3px var(--b0-navy-soft); }
.b0-p-faq .faq-empty { font-size: 14px; color: var(--b0-red); }
.b0-p-faq .faq-empty[hidden] { display: none; }

/* Bố cục 2 cột: nav nhóm (dính) + nội dung */
.b0-p-faq .faq-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 32px; align-items: start; }
.b0-p-faq .faq-nav { position: sticky; top: 92px; display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.b0-p-faq .faq-nav nav { display: flex; flex-direction: column; gap: 4px; }
.b0-p-faq .faq-nav nav a { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 44px; padding: 0 14px; border-radius: 10px; font-size: 14px; font-weight: 600; color: var(--b0-text); }
.b0-p-faq .faq-nav nav a span { font-size: 12px; color: #94A3B8; font-weight: 700; }
.b0 .b0-p-faq .faq-nav nav a:hover { background: #fff; color: var(--b0-red); }
.b0 .b0-p-faq .faq-nav nav a[aria-current] { background: var(--b0-red-soft); color: var(--b0-red); }

.b0-p-faq .faq-help { background: #fff; border: 1px solid var(--b0-line); border-radius: 16px; padding: 18px; display: flex; flex-direction: column; gap: 10px; font-size: 13px; color: var(--b0-text-2); line-height: 1.5; }
.b0-p-faq .faq-help strong { font-size: 15px; color: var(--b0-navy); }
.b0-p-faq .faq-help span a { color: var(--b0-navy); font-weight: 700; }

.b0-p-faq .faq-groups { display: flex; flex-direction: column; gap: 32px; min-width: 0; }
.b0-p-faq .faq-group { display: flex; flex-direction: column; gap: 14px; }
.b0-p-faq .faq-group[hidden], .b0-p-faq .faq-group details[hidden] { display: none; }
.b0-p-faq .faq-group h2 { font-size: 22px; font-weight: 800; }

@media (max-width: 1080px) {
    .b0-p-faq .faq-layout { grid-template-columns: 200px minmax(0, 1fr); gap: 24px; }
}
@media (max-width: 760px) {
    /* Một cột: nav thành hàng chip cuộn ngang ở trên, hộp hỗ trợ xuống cuối. */
    .b0-p-faq .faq-layout { grid-template-columns: 1fr; }
    .b0-p-faq .faq-nav { position: static; display: contents; }
    .b0-p-faq .faq-nav nav { order: -1; flex-direction: row; overflow-x: auto; gap: 8px; padding-bottom: 4px; }
    .b0-p-faq .faq-nav nav a { flex: 0 0 auto; border: 1px solid var(--b0-line-2); background: #fff; border-radius: 999px; min-height: 40px; }
    .b0-p-faq .faq-help { order: 2; }
    .b0-p-faq .faq-groups { order: 1; }
}
@media (max-width: 640px) {
    .b0-p-faq .faq-group h2 { font-size: 20px; }
    .b0-p-faq .b0-acc details { padding: 4px 14px; }
}

