/* Trang khám phá Tiện ích; chỉ áp dụng .sou-hub, không đổi màn hình công cụ. */
.sou-hub{--sou-ink:#081a54;--sou-primary:#0755ff;--sou-muted:#62749b;max-width:1200px;padding-top:20px;padding-bottom:52px}
.sou-hub .sou-breadcrumb{font-size:13px;margin-bottom:16px}
.sou-hub .sou-hero{position:relative;padding:42px 46px 34px;overflow:hidden;border:0;border-radius:24px;background:radial-gradient(ellipse at 94% 22%,#c5e7ff 0,transparent 55%),linear-gradient(112deg,#eff7ff,#f5faff 53%,#e2f1ff)}
.sou-hub .sou-hero-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:4px;align-items:center}
.sou-hub .sou-hero-copy{position:relative;z-index:1;min-width:0}
.sou-hub .sou-hero-label{display:inline-flex;align-items:center;gap:9px;padding:8px 12px;border:1px solid #a9ddff;border-radius:10px;background:rgba(255,255,255,.82);color:#26374e;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.sou-hub .sou-hero-label .fa{color:#f79321;font-size:18px}
.sou-hub .sou-hero-label b{color:#008bd7}
.sou-hub .sou-hero h1{margin:20px 0 16px;font-size:46px;line-height:1.13;letter-spacing:-1.5px;font-weight:700;overflow-wrap:normal}
.sou-hub .sou-hero h1>span{position:relative;color:#0755ff;white-space:nowrap}
.sou-hub .sou-hero h1>span:after{content:"";position:absolute;right:0;bottom:-7px;width:90px;height:4px;border-radius:50%;background:#ffa43f;transform:rotate(-3deg)}
.sou-hub .sou-hero-intro{margin:0 0 26px;font-size:17px;line-height:1.65;color:#132553;max-width:540px}
.sou-hub .sou-hero-art{align-self:center;position:relative;margin:-30px -42px -18px -2px;pointer-events:none}
.sou-hub .sou-hero-art img{display:block;width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 18px 20px rgba(35,92,167,.08))}
.sou-hub .sou-search{position:relative;z-index:2;gap:12px;max-width:none;border-color:#bcd5ff;border-radius:14px;padding:6px 6px 6px 17px;box-shadow:0 6px 20px rgba(35,89,184,.07)}
.sou-hub .sou-search{flex-wrap:nowrap}
.sou-hub .sou-search input{flex-basis:auto}
.sou-hub .sou-search .sou-button{width:auto}
.sou-hub .sou-search input{font-size:14px;min-height:42px}
.sou-hub .sou-search input::placeholder{color:#7786a6;opacity:1}
.sou-hub .sou-search .sou-button{min-height:44px;padding:10px 19px;font-size:14px;border-radius:10px;white-space:nowrap;box-shadow:0 4px 9px rgba(7,85,255,.18)}
.sou-hub .sou-hints{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;margin:15px 0 0;color:#213362}
.sou-hub .sou-hints>span{font-weight:700;margin-right:3px}
.sou-hub .sou-hints a{margin:0;padding:5px 10px;min-height:30px;border-color:#cfe3ff;background:rgba(255,255,255,.65);font-size:12px;font-weight:600;transition:background .2s,transform .2s}
.sou-hub .sou-hints a:hover{background:#fff;transform:translateY(-2px)}
.sou-hub .sou-badges{gap:12px 20px;margin-top:22px;font-size:12px}
.sou-hub .sou-badges .fa{color:#28ba76;font-size:16px;margin-right:4px;vertical-align:middle}
.sou-hub .sou-search-status:empty{display:none}
.sou-hub .sou-search-status:not(:empty){margin-top:20px;padding-top:16px;border-top:1px solid #cce0fa;color:#304e7f;font-weight:600}
.sou-hub .sou-results{max-width:none;position:relative;z-index:2}
.sou-hub .sou-results .sou-card{min-height:190px}
.sou-hub .sou-section{margin-top:40px}
.sou-hub h2{font-size:26px;letter-spacing:-.5px}
.sou-hub .sou-section-head{margin-bottom:18px;gap:14px;align-items:center}
.sou-hub .sou-section-head p{margin:6px 0 0;font-size:15px;color:var(--sou-muted);line-height:1.55}
.sou-hub .sou-section-more{display:inline-flex;gap:10px;align-items:center;font-size:13px;text-decoration:none;min-height:40px;white-space:nowrap;font-weight:600}
.sou-hub .sou-section-more:hover{text-decoration:underline}
.sou-hub .sou-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.sou-hub [data-tone]{--sou-tint:#eff7ff;--sou-icon:#0094f1;--sou-icon-bg:#dff1ff}
.sou-hub [data-tone="qr-su-kien"],.sou-hub [data-tone="website-ky-thuat"]{--sou-tint:#f9f5ff;--sou-icon:#803cff;--sou-icon-bg:#eee4ff}
.sou-hub [data-tone="van-ban"]{--sou-tint:#f1fbf7;--sou-icon:#00aa77;--sou-icon-bg:#ddf8ed}
.sou-hub [data-tone="hinh-anh"]{--sou-tint:#fff9f0;--sou-icon:#f58c0c;--sou-icon-bg:#fff0d9}
.sou-hub [data-tone="pdf-tai-lieu"]{--sou-tint:#fff5f6;--sou-icon:#f1475d;--sou-icon-bg:#ffe7eb}
.sou-hub [data-tone="kinh-doanh-tinh-toan"]{--sou-tint:#f0fbfc;--sou-icon:#00a7b1;--sou-icon-bg:#dff7f8}
.sou-hub .sou-cats{grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}
.sou-hub .sou-cats .sou-cat{flex-direction:column;align-items:center;text-align:center;padding:16px 10px 14px;gap:10px;background:linear-gradient(140deg,#fff,var(--sou-tint));border-color:#e0eafa;border-radius:16px}
.sou-hub .sou-cats strong{font-size:14px;line-height:1.4;min-height:39px;display:flex;align-items:center;justify-content:center;color:var(--sou-ink)}
.sou-hub .sou-cats small{font-size:12px;font-weight:600;color:var(--sou-icon);border-radius:20px;background:var(--sou-icon-bg);padding:3px 8px}
.sou-hub .sou-card-icon{width:48px;height:48px;flex:none;border-radius:13px;background:var(--sou-icon-bg,#e4f1ff);color:var(--sou-icon,#0755ff);font-size:25px;box-shadow:inset 0 0 0 5px rgba(255,255,255,.35)}
.sou-hub .sou-card{position:relative;gap:13px;min-height:215px;padding:20px 20px 50px;border-color:#dfe8f8;border-radius:17px;transition:transform .2s,border-color .2s,box-shadow .2s;background:linear-gradient(155deg,#fff,#fdfefe)}
.sou-hub .sou-card:hover,.sou-hub .sou-cat:hover,.sou-hub .sou-module:hover{transform:translateY(-4px);border-color:#aad4ff;box-shadow:0 10px 25px rgba(37,91,173,.08);text-decoration:none}
.sou-hub .sou-popular .sou-grid>li:first-child .sou-card{box-shadow:0 0 0 3px #f0f8ff,0 5px 15px rgba(0,138,228,.06);border-color:#c6e6ff}
.sou-hub .sou-card-body{gap:8px}
.sou-hub .sou-card-body strong{font-size:16px;line-height:1.4}
.sou-hub .sou-card-body>span{font-size:14px;line-height:1.65;color:var(--sou-muted)}
.sou-hub .sou-card-go{position:absolute;right:18px;bottom:17px;width:30px;height:30px;display:flex;justify-content:center;align-items:center;border-radius:50%;background:#edf6ff;color:#0870ff;font-size:20px;transition:background .2s,transform .2s}
.sou-hub .sou-card:hover .sou-card-go{background:#deecff;transform:translateX(3px)}
.sou-hub .sou-collection-section,.sou-hub .sou-module-section{padding:26px;border-radius:22px;background:linear-gradient(120deg,#f0f7ff,#f7fbff);border:1px solid #f1f6fd}
.sou-hub .sou-collections{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.sou-hub .sou-collection{padding:16px 18px;background:#fff;border-color:#eaf1fc;border-radius:15px}
.sou-hub .sou-collection h3{display:flex;gap:12px;align-items:center;font-size:15px;line-height:1.4;margin:0 0 12px;min-height:46px}
.sou-hub .sou-collection .sou-card-icon{width:40px;height:40px;font-size:21px;border-radius:10px}
.sou-hub .sou-collection ul{list-style:none;padding:0;margin:0}
.sou-hub .sou-collection li{margin:0;border-top:1px solid #edf2fa}
.sou-hub .sou-collection li:first-child{border:0}
.sou-hub .sou-collection a{display:flex;gap:8px;align-items:center;justify-content:space-between;min-height:43px;font-size:13px;color:#243b70;text-decoration:none;line-height:1.5}
.sou-hub .sou-collection a>span:last-child{color:#0763ff}
.sou-hub .sou-collection a:hover{color:#0755ff}
.sou-hub .sou-fresh .sou-card{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;min-height:147px;padding:19px 16px 41px}
.sou-hub .sou-fresh .sou-card-icon{width:44px;height:44px;font-size:23px}
.sou-hub .sou-fresh .sou-card-body strong{font-size:14px;padding-right:24px}
.sou-hub .sou-fresh .sou-card-body>span{font-size:13px}
.sou-hub .sou-new-tag{position:absolute;top:17px;right:12px;padding:2px 5px;border-radius:6px;background:#fff0e0;color:#cf4b00;font-size:10px;font-weight:700}
.sou-hub .sou-recent .sou-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.sou-hub .sou-recent .sou-card{min-height:155px;display:grid;grid-template-columns:40px 1fr;padding:18px 18px 40px;gap:12px}
.sou-hub .sou-recent .sou-card-body small{display:none}
.sou-hub .sou-recent .sou-card-icon{width:40px;height:40px;font-size:21px}
.sou-hub .sou-recent .sou-card-body>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sou-hub .sou-all{margin-top:25px;scroll-margin-top:90px}
.sou-hub .sou-all>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 20px;background:#f8fbff;border:1px solid #e1ebfb;border-radius:14px;color:var(--sou-ink);font-weight:700;cursor:pointer;min-height:60px}
.sou-hub .sou-all>summary::-webkit-details-marker{display:none}
.sou-hub .sou-all>summary .fa-th-large{margin-right:8px;color:#0755ff}
.sou-hub .sou-all-hint{font-size:12px;font-weight:400;color:var(--sou-muted)}
.sou-hub .sou-all-hint .fa{margin-left:10px;font-size:18px;transition:transform .2s}
.sou-hub .sou-all[open] .sou-all-hint .fa{transform:rotate(180deg)}
.sou-hub .sou-all>.sou-grid{margin-top:18px}
.sou-hub .sou-all .sou-card-body small{font-size:11px;color:var(--sou-icon)}
.sou-hub .sou-benefits{margin-top:32px}
.sou-hub .sou-benefits ul{grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.sou-hub .sou-benefits li{grid-template-columns:40px 1fr;gap:3px 14px;background:none;border-radius:0;padding:13px 22px;border-right:1px solid #dde8fb}
.sou-hub .sou-benefits li:last-child{border:0}
.sou-hub .sou-benefits .fa{font-size:32px;margin-top:4px;color:#097aff}
.sou-hub .sou-benefits strong{font-size:14px}
.sou-hub .sou-benefits span:last-child{font-size:12px}
.sou-hub .sou-modules{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.sou-hub .sou-module{flex-direction:row;align-items:flex-start;gap:14px;padding:18px;border-color:#e0ecfb;border-radius:16px}
.sou-hub .sou-module-body{display:flex;flex-direction:column;gap:6px;min-width:0}
.sou-hub .sou-module strong{font-size:15px}
.sou-hub .sou-module-body>span{font-size:12px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sou-hub .sou-module em{font-size:13px}
.sou-hub .sou-faq{display:grid;grid-template-columns:1fr 1.65fr;gap:55px;align-items:start;padding:0 20px}
.sou-hub .sou-faq-intro p{margin:9px 0 0;color:var(--sou-muted);font-size:14px;line-height:1.7;max-width:300px}
.sou-hub .sou-faq-art{position:relative;height:150px;max-width:270px;display:flex;align-items:center;justify-content:center;margin-top:12px;background:radial-gradient(ellipse at 45% 75%,#e2f1ff,transparent 66%)}
.sou-hub .sou-faq-art>.fa{font-size:90px;color:#2286ff;transform:rotate(-9deg);filter:drop-shadow(0 10px 8px #d3e6ff)}
.sou-hub .sou-faq-question{position:absolute;top:6px;right:30px;width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:18px;background:linear-gradient(135deg,#31b6ff,#1263ef);color:#fff;font-size:35px;font-weight:700;transform:rotate(9deg);box-shadow:0 12px 20px #d7e9ff}
.sou-hub .sou-faq-spark{position:absolute;left:27px;top:21px;font-size:27px;color:#ff9b27}
.sou-hub .sou-faq-contact{display:inline-flex;gap:10px;min-height:35px;align-items:center;font-size:13px;font-weight:700;text-decoration:none}
.sou-hub .sou-faq-list{display:grid;gap:9px}
.sou-hub .sou-faq details{border:1px solid #dce7f9;border-radius:12px;padding:0;background:#fff;overflow:hidden;transition:border-color .2s,background .2s}
.sou-hub .sou-faq details[open]{border-color:#b8d4ff;background:#f9fcff}
.sou-hub .sou-faq summary{display:flex;align-items:center;justify-content:space-between;gap:14px;list-style:none;padding:15px 19px;font-size:14px;line-height:1.55;font-weight:400;min-height:50px}
.sou-hub .sou-faq summary::-webkit-details-marker{display:none}
.sou-hub .sou-faq summary:after{content:"+";font-size:20px;font-weight:400;color:#0d3e86;flex:none;transition:transform .2s}
.sou-hub .sou-faq details[open] summary:after{transform:rotate(45deg)}
.sou-hub .sou-faq details p{margin:0;padding:0 19px 17px;font-size:14px;line-height:1.7;color:#5a6f94}
.sou-hub summary:focus-visible,.sou-hub a:focus-visible{outline:2px solid #0755ff;outline-offset:4px}
@media(min-width:1200px){.sou-hub .sou-hero-art{width:470px}}
@media(max-width:1100px){.sou-hub .sou-hero{padding:32px}.sou-hub .sou-hero h1{font-size:39px}.sou-hub .sou-hero-art{margin:-10px -30px -10px 0}.sou-hub .sou-collection{padding:14px}.sou-hub .sou-collection h3{gap:8px;font-size:14px}}
@media(max-width:850px){.sou-hub .sou-hero-layout{grid-template-columns:1.4fr 1fr}.sou-hub .sou-hero h1{font-size:34px;letter-spacing:-1px}.sou-hub .sou-hero-intro{font-size:15px}.sou-hub .sou-hero-art{margin:0 -40px 0 -10px}.sou-hub .sou-badges{gap:8px 12px}.sou-hub .sou-cats{grid-template-columns:repeat(4,minmax(0,1fr))}.sou-hub .sou-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sou-hub .sou-collections{grid-template-columns:repeat(2,minmax(0,1fr))}.sou-hub .sou-recent .sou-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sou-hub .sou-modules{grid-template-columns:1fr}.sou-hub .sou-module-body>span{-webkit-line-clamp:unset}.sou-hub .sou-benefits li{padding:10px}.sou-hub .sou-benefits ul{gap:10px}.sou-hub .sou-faq{gap:25px;padding:0;grid-template-columns:1fr 1.6fr}.sou-hub h2{font-size:23px}}
@media(max-width:600px){.sou-hub{padding:16px 16px 36px}.sou-hub .sou-breadcrumb{margin-bottom:14px;font-size:12px}.sou-hub .sou-hero{padding:27px 22px 23px;border-radius:20px}.sou-hub .sou-hero-layout{display:block}.sou-hub .sou-hero-label{font-size:11px;padding:7px 10px}.sou-hub .sou-hero h1{font-size:34px;line-height:1.15;margin:18px 0 17px;letter-spacing:-1.1px}.sou-hub .sou-hero h1>span{white-space:normal}.sou-hub .sou-hero-intro{font-size:14px;margin-bottom:20px}.sou-hub .sou-search{gap:8px;padding-left:11px}.sou-hub .sou-search input{font-size:13px;min-height:40px}.sou-hub .sou-search .sou-button{padding:10px 11px;font-size:12px;min-height:40px}.sou-hub .sou-hints{gap:6px;margin-top:14px}.sou-hub .sou-hints a{font-size:11px;padding:5px 8px}.sou-hub .sou-badges{font-size:11px;gap:9px 13px;margin-top:18px}.sou-hub .sou-badges .fa{font-size:14px}.sou-hub .sou-hero-art{max-width:235px;margin:8px auto -15px}.sou-hub .sou-section{margin-top:30px}.sou-hub h2{font-size:22px;letter-spacing:-.5px}.sou-hub .sou-section-head{margin-bottom:14px;gap:8px}.sou-hub .sou-section-head p{font-size:13px;margin-top:5px}.sou-hub .sou-section-more{font-size:12px;min-height:35px}.sou-hub .sou-grid{gap:11px}.sou-hub .sou-cats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.sou-hub .sou-cats .sou-cat{padding:14px 8px;gap:7px}.sou-hub .sou-cats strong{min-height:35px;font-size:13px}.sou-hub .sou-cats .sou-card-icon{width:42px;height:42px;font-size:22px}.sou-hub .sou-card{padding:16px 13px 46px;gap:11px;min-height:212px;border-radius:15px}.sou-hub .sou-card-icon{width:43px;height:43px;font-size:23px}.sou-hub .sou-card-body strong{font-size:14px;line-height:1.45}.sou-hub .sou-card-body>span{font-size:12px;line-height:1.65}.sou-hub .sou-card-go{right:13px;bottom:13px;width:29px;height:29px}.sou-hub .sou-collection-section,.sou-hub .sou-module-section{padding:19px 14px;border-radius:19px}.sou-hub .sou-collections{gap:10px}.sou-hub .sou-collection{padding:12px}.sou-hub .sou-collection h3{flex-direction:column;align-items:flex-start;font-size:13px;gap:8px;min-height:73px}.sou-hub .sou-collection a{font-size:12px;min-height:43px}.sou-hub .sou-fresh .sou-card{grid-template-columns:33px 1fr;gap:8px;padding:15px 11px 38px;min-height:160px}.sou-hub .sou-fresh .sou-card-icon{width:33px;height:33px;font-size:18px;border-radius:10px}.sou-hub .sou-fresh .sou-card-body strong{font-size:12px;padding-right:0;line-height:1.5}.sou-hub .sou-fresh .sou-card-body>span{font-size:12px}.sou-hub .sou-new-tag{right:11px;top:auto;bottom:16px;left:11px;width:max-content;font-size:9px}.sou-hub .sou-recent .sou-grid{grid-template-columns:1fr}.sou-hub .sou-recent .sou-card{min-height:120px}.sou-hub .sou-benefits ul{grid-template-columns:1fr;gap:8px}.sou-hub .sou-benefits li{border:0;border-bottom:1px solid #e5edf9;padding:12px 6px;grid-template-columns:38px 1fr}.sou-hub .sou-benefits strong{font-size:14px}.sou-hub .sou-benefits span:last-child{font-size:12px}.sou-hub .sou-module{padding:16px}.sou-hub .sou-module strong{font-size:14px}.sou-hub .sou-faq{display:block}.sou-hub .sou-faq-intro{margin-bottom:17px}.sou-hub .sou-faq-intro p{max-width:none;font-size:13px}.sou-hub .sou-faq-art{display:none}.sou-hub .sou-faq-contact{margin-top:8px}.sou-hub .sou-faq summary{padding:14px;font-size:13px}.sou-hub .sou-faq details p{padding:0 14px 14px;font-size:13px}.sou-hub .sou-all>summary{padding:14px;font-size:13px;gap:10px}.sou-hub .sou-all-hint{font-size:0}.sou-hub .sou-all-hint .fa{font-size:18px}.sou-hub .sou-search-status:not(:empty){font-size:13px}}
@media(min-width:601px) and (max-width:850px){.sou-hub .sou-grid.sou-cats{grid-template-columns:repeat(4,minmax(0,1fr))}.sou-hub .sou-hero-art{margin:0 -12px 0 -8px}}
@media(max-width:600px){.sou-hub .sou-hero h1{font-size:30px;letter-spacing:-1px}}
@media(max-width:360px){.sou-hub .sou-hero{padding-left:18px;padding-right:18px}.sou-hub .sou-hero h1{font-size:27px}.sou-hub .sou-search .sou-button{padding-left:9px;padding-right:9px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.sou-hub *{transition:none!important;scroll-behavior:auto!important}.sou-hub .sou-card:hover,.sou-hub .sou-cat:hover,.sou-hub .sou-module:hover,.sou-hub .sou-hints a:hover{transform:none}}
