*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:"Sora",system-ui,sans-serif;background:#f4faf5;color:#0d1f10;line-height:1.78;font-size:clamp(14px,2.2vw,15.5px);-webkit-font-smoothing:antialiased}.progress-bar{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,#1a4d2e,#2d7a3a,#4caf70);width:0;z-index:1000;transition:width .1s linear}.topbar{background:#0a1f0f;color:#a5d6a7;padding:9px clamp(14px,4vw,24px);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px;font-size:clamp(11px,2.8vw,13px);border-bottom:2px solid #1a4d2e}.topbar-brand{font-weight:700;color:#fff;letter-spacing:.5px;display:flex;align-items:center;gap:9px;text-decoration:none}.topbar-dot{width:7px;height:7px;border-radius:50%;background:#4caf70;flex-shrink:0;animation:pulse 2.5s ease-in-out infinite}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}.topbar a{color:#4caf70;text-decoration:none;font-weight:500}.topbar a:hover{color:#fff;text-decoration:underline}.topbar-nav{display:flex;gap:clamp(10px,2.5vw,22px);flex-wrap:wrap}.topbar-nav a{font-size:clamp(11px,2.2vw,12.5px)}.breadcrumb{background:#0a1f0f;border-bottom:1px solid #1a4d2e;padding:6px clamp(14px,4vw,24px);font-size:12px;color:#4a7a55}.breadcrumb a{color:#4caf70;text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.breadcrumb span{color:#4a7a55;margin:0 5px}.hero{background:linear-gradient(135deg,#040e06 0%,#0a1f0f 35%,#1a4d2e 75%,#2d7a3a 100%);color:#fff;padding:clamp(36px,7vw,68px) clamp(16px,6vw,48px) clamp(32px,6vw,58px);text-align:center;position:relative;overflow:hidden}.hero::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 15% 60%,rgba(76,175,112,.18) 0%,transparent 50%),radial-gradient(circle at 85% 25%,rgba(45,122,58,.14) 0%,transparent 45%)}.hero>*{position:relative;z-index:1}.hero-eyebrow{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.22);border-radius:20px;padding:4px clamp(12px,3vw,16px);font-size:clamp(10px,2vw,12px);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:clamp(12px,2.5vw,18px);color:#a5d6a7;font-weight:500}.hero-eyebrow-dot{width:5px;height:5px;border-radius:50%;background:#4caf70;animation:pulse 2.5s ease-in-out infinite}.hero h1{font-size:clamp(22px,5vw,46px);font-weight:700;line-height:1.16;margin-bottom:clamp(8px,2vw,14px);color:#fff;max-width:860px;margin-left:auto;margin-right:auto}.hero h1 em{font-style:italic;color:#4caf70;font-weight:300}.hero-sub{font-size:clamp(13px,2.2vw,16px);color:#c8e6c9;line-height:1.68;max-width:600px;margin:0 auto 20px;font-weight:300}.hero-meta{display:flex;justify-content:center;flex-wrap:wrap;gap:18px;font-size:12px;color:#81c784;border-top:1px solid rgba(255,255,255,.14);padding-top:18px;max-width:500px;margin:0 auto}.hero-meta-item{display:flex;align-items:center;gap:6px}.page-wrap{max-width:1200px;margin:0 auto;overflow-x:clip}.layout{display:flex;flex-direction:row;margin:clamp(16px,4vw,36px) auto;padding:0 clamp(12px,3vw,20px);gap:clamp(16px,3vw,28px);align-items:flex-start}@media(max-width:900px){.layout{flex-direction:column}.sidebar{width:100%;position:static}.main{width:100%}.sidebar{display:none;position:fixed;inset:0;z-index:200;overflow-y:auto;background:rgba(4,14,6,.96);padding:20px}.sidebar.mobile-open{display:block}.toc{max-width:300px;margin-left:auto}}.sidebar{width:240px;flex-shrink:0;position:sticky;top:20px;max-height:calc(100vh - 40px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#1a4d2e transparent}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background:#1a4d2e;border-radius:4px}.main{flex:1;min-width:0}.toc{background:#fff;border:1px solid #c8e6c9;border-radius:12px;overflow:hidden;box-shadow:0 2px 12px rgba(26,77,46,.12)}.toc-label{background:#0a1f0f;color:#a5d6a7;padding:clamp(10px,2.5vw,13px) clamp(14px,3vw,18px);font-size:clamp(10px,2.2vw,11px);font-weight:700;text-transform:uppercase;letter-spacing:1.5px;display:flex;align-items:center;gap:8px}.toc-label::before{content:"▪";color:#4caf70}.toc-list{list-style:none;padding:8px 0}.toc-list li{margin-bottom:1px}.toc-list a{display:flex;align-items:baseline;gap:8px;padding:6px 16px;font-size:13px;color:#0d1f10;text-decoration:none;line-height:1.45;transition:all .15s;border-left:3px solid transparent}.toc-list a:hover{background:#e8f5e9;color:#1a4d2e;border-left-color:#c8e6c9}.toc-list a.active{background:#c8e6c9;color:#0a2e14;border-left-color:#1a4d2e;font-weight:600}.toc-num{font-size:9px;font-weight:700;color:#2d7a3a;min-width:18px;text-align:right;flex-shrink:0;font-family:"JetBrains Mono","Courier New",monospace}.toc-cta{padding:clamp(10px,2.5vw,14px) clamp(14px,3vw,18px);text-align:center;border-top:1px solid #c8e6c9;background:#f4faf5}.toc-cta p{font-size:11.5px;color:#1a4d2e;margin-bottom:8px;line-height:1.5}.toc-cta a{display:inline-block;background:#1a4d2e;color:#fff;font-size:11.5px;font-weight:600;padding:7px 14px;border-radius:6px;text-decoration:none}.toc-cta a:hover{background:#0a1f0f}.card{background:#fff;border:1px solid #c8e6c9;border-radius:12px;padding:clamp(20px,4.5vw,40px);margin-bottom:clamp(14px,3vw,20px);box-shadow:0 1px 6px rgba(26,77,46,.07);overflow:hidden;scroll-margin-top:20px;transition:box-shadow .2s}.card:hover{box-shadow:0 4px 18px rgba(26,77,46,.14)}.section-header{margin-bottom:18px}.section-num{display:inline-flex;align-items:center;justify-content:center;background:#1a4d2e;color:#fff;width:28px;height:28px;border-radius:50%;font-size:11px;font-weight:700;font-family:"JetBrains Mono","Courier New",monospace;margin-bottom:12px}.card h2{font-family:"Sora",system-ui,sans-serif;font-size:clamp(17px,3.2vw,24px);font-weight:700;color:#0d1f10;line-height:1.24;margin-bottom:8px;padding-bottom:10px;border-bottom:2px solid #c8e6c9}.card h2 em{font-style:italic;color:#1a4d2e;font-weight:300}.section-divider{width:32px;height:3px;background:linear-gradient(90deg,#1a4d2e,#4caf70);border-radius:2px;margin-bottom:20px}.card h3{font-size:clamp(14px,2vw,16px);font-weight:600;color:#0d1f10;margin:24px 0 10px;padding-bottom:7px;border-bottom:1px solid #e8f5e9}.card p{margin-bottom:14px;font-size:clamp(14px,2vw,15.5px);color:#0d1f10;line-height:1.78}.card p:last-child{margin-bottom:0}.card strong{color:#0d1f10;font-weight:700}.card em{color:#1a4d2e;font-style:italic}.card code{background:#e8f5e9;color:#0a2e14;padding:2px 7px;border-radius:4px;font-family:"JetBrains Mono","Courier New",monospace;font-size:.86em;border:1px solid #c8e6c9}.card ul,.card ol{padding-left:22px;margin-bottom:14px}.card li{margin-bottom:8px;font-size:clamp(14px,2vw,15.5px);color:#0d1f10;line-height:1.72}.card a{color:#1a4d2e;text-decoration:underline;text-decoration-color:#c8e6c9;text-underline-offset:3px}.card a:hover{color:#0a1f0f;text-decoration-color:#1a4d2e}.framework-box{background:#0a1f0f;border:1px solid #1a4d2e;border-radius:12px;padding:24px 28px;margin:20px 0;overflow-x:auto;font-family:"JetBrains Mono","Courier New",monospace;font-size:clamp(12px,1.8vw,13px);line-height:2.1;color:#a5d6a7}.framework-box .fb-title{font-family:"Sora",system-ui,sans-serif;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#4caf70;margin-bottom:16px;font-weight:700;display:block}.framework-box .fb-layer{color:#c8e6c9;font-weight:500}.framework-box .fb-desc{color:#4a7a55;font-size:.9em}.framework-box .fb-arrow{color:#2d7a3a}.formula{background:#e8f5e9;border:1px solid #c8e6c9;border-left:4px solid #1a4d2e;border-radius:10px;padding:18px 22px;margin:18px 0;text-align:center;font-family:"JetBrains Mono","Courier New",monospace;font-size:clamp(13px,2vw,14.5px);color:#0d1f10;line-height:1.9}.formula .formula-title{font-family:"Sora",system-ui,sans-serif;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#1a4d2e;margin-bottom:10px;font-weight:700}.callout{border-radius:8px;padding:14px 18px;margin:20px 0;font-size:14px;line-height:1.68;border-left:4px solid;display:flex;gap:12px;align-items:flex-start}.callout-icon{font-size:15px;flex-shrink:0;margin-top:2px}.callout-body{flex:1}.callout-title{font-weight:700;margin-bottom:4px;font-size:11px;letter-spacing:.5px;text-transform:uppercase}.callout-green{background:#e8f5e9;border-color:#2d7a3a;color:#0a2e14}.callout-green .callout-title{color:#1a4d2e}.callout-red{background:#fff1f2;border-color:#e11d48;color:#881337}.callout-red .callout-title{color:#9f1239}.callout-info{background:#f4faf5;border-color:#c8e6c9;color:#0d1f10}.callout-info .callout-title{color:#1a4d2e}.callout-amber{background:#fffbeb;border-color:#f59e0b;color:#78350f}.callout-amber .callout-title{color:#b45309}.table-wrap{overflow-x:auto;margin:18px 0;border-radius:8px;border:1px solid #c8e6c9}table{width:100%;border-collapse:collapse;min-width:420px}thead tr{background:#0a1f0f}thead th{padding:10px 14px;text-align:left;font-size:11px;letter-spacing:.8px;text-transform:uppercase;color:#a5d6a7;font-weight:600;white-space:nowrap;border-bottom:1px solid #1a4d2e}tbody tr{border-bottom:1px solid #c8e6c9}tbody tr:nth-child(even){background:#f4faf5}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#e8f5e9}tbody td{padding:10px 14px;font-size:13.5px;color:#0d1f10;line-height:1.6}.summary-card{background:linear-gradient(135deg,#e8f5e9,#f4faf5);border:1px solid #c8e6c9;border-left:4px solid #1a4d2e;border-radius:12px;padding:clamp(18px,3.5vw,32px);margin-bottom:20px;box-shadow:0 2px 12px rgba(26,77,46,.09)}.summary-label{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#1a4d2e;font-weight:700;margin-bottom:10px;display:block}.summary-card h2{font-size:clamp(15px,2.8vw,20px);color:#0d1f10;font-weight:700;margin-bottom:10px;border:none;padding:0;line-height:1.28}.summary-card p{color:#0d1f10;font-size:clamp(13px,2vw,15px);line-height:1.72;margin-bottom:10px}.faq-item{border-radius:12px;margin-bottom:10px;overflow:hidden;background:#fff;box-shadow:0 2px 10px rgba(26,77,46,.08);transition:box-shadow .2s,transform .2s}.faq-item:hover{box-shadow:0 6px 22px rgba(26,77,46,.13);transform:translateY(-1px)}.faq-item.open{box-shadow:0 6px 24px rgba(26,77,46,.14)}.faq-q{padding:17px 20px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;background:transparent;font-weight:600;font-size:15px;color:#0d1f10;user-select:none;transition:color .15s;border:none;width:100%;text-align:left;font-family:"Sora",system-ui,sans-serif}.faq-q:hover{color:#1a4d2e}.faq-item.open .faq-q{color:#1a4d2e}.faq-icon{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#e8f5e9,#c8e6c9);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:300;color:#1a4d2e;transition:transform .25s,background .2s}.faq-item.open .faq-icon{transform:rotate(45deg);background:linear-gradient(135deg,#1a4d2e,#2d7a3a);color:#fff}.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease;background:linear-gradient(to bottom,#f4faf5,#fff)}.faq-item.open .faq-a{max-height:800px}.faq-a-inner{padding:4px 20px 18px;font-size:14.5px;color:#2a4030;line-height:1.8}.cluster-section{background:#0a1f0f;padding:clamp(36px,6vw,56px) clamp(12px,4vw,24px);margin-top:0}.cluster-inner{max-width:1200px;margin:0 auto}.cluster-heading{font-size:clamp(16px,3.5vw,20px);font-weight:700;color:#fff;margin-bottom:4px}.cluster-sub{font-size:clamp(12px,2.5vw,13px);color:#4a7a55;margin-bottom:clamp(24px,4vw,36px)}.cluster-group{margin-bottom:clamp(24px,4vw,36px)}.cluster-group-header{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.08)}.cluster-group-title{font-size:clamp(10px,2vw,12px);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#4caf70}.cluster-group-count{font-size:11px;color:#4a7a55;margin-left:auto}.cluster-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media(max-width:860px){.cluster-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:540px){.cluster-grid{grid-template-columns:1fr}}.cluster-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);border-radius:10px;padding:14px 16px;text-decoration:none;display:flex;flex-direction:column;gap:4px;transition:border-color .2s,background .2s}.cluster-card:hover{border-color:#4caf70;background:rgba(76,175,112,.10)}.cluster-card--current{border-color:#4caf70;background:rgba(76,175,112,.15);cursor:default;pointer-events:none;position:relative}.cluster-card--current::before{content:"● Đang đọc";position:absolute;top:8px;right:10px;font-size:9px;font-weight:700;color:#4caf70;text-transform:uppercase;letter-spacing:.08em;opacity:.85}.cluster-card-tag{font-size:10px;color:#4caf70;text-transform:uppercase;letter-spacing:.08em}.cluster-card-title{font-size:clamp(12px,2.5vw,13.5px);font-weight:700;color:#e8f5e9;line-height:1.4}.cluster-card-desc{font-size:clamp(11px,2vw,12px);color:#4a7a55;line-height:1.5;margin-top:2px}.cluster-all-link{display:inline-flex;align-items:center;gap:6px;margin-top:clamp(16px,3vw,24px);padding:9px 18px;background:rgba(26,77,46,.35);border:1px solid rgba(76,175,112,.3);border-radius:8px;font-size:13px;font-weight:600;color:#a5d6a7;text-decoration:none;transition:background .2s}.cluster-all-link:hover{background:rgba(26,77,46,.6);color:#fff}.references{font-size:13px}.references h3{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#1a4d2e;margin:18px 0 10px;border:none;padding:0}.references ol{padding-left:20px}.references li{margin-bottom:7px;color:#334155;line-height:1.65}.references a{color:#1a4d2e}footer{background:#0a1f0f;color:#4a7a55;text-align:center;padding:clamp(24px,5vw,44px) clamp(16px,4vw,24px);font-size:clamp(12px,2.5vw,13.5px);border-top:2px solid #1a4d2e}footer strong{color:#a5d6a7}footer a{color:#4caf70;text-decoration:none}footer a:hover{text-decoration:underline}.footer-disclaimer{margin-top:10px;font-size:12px;color:#2d5a3d;line-height:1.65}.mobile-toc-btn{display:none;position:fixed;bottom:20px;right:20px;z-index:150;background:#1a4d2e;color:#fff;border:none;width:44px;height:44px;border-radius:50%;font-size:20px;cursor:pointer;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(0,0,0,.35)}@media(max-width:900px){.mobile-toc-btn{display:flex}}