/* NEN.CSS: CSS NEN TOAN SITE (khung .mil-skin, header/menu/footer, popup tu van), MOT tep chan hien thi.
   Gop 27/09/2026 tu 6 tep nap bang 6 the <link> o src/app/layout.tsx, GIU DUNG THU TU CU:
   plugins/bootstrap-grid.css, theme-scoped.css, alodev-scoped.css, mil-tokens.css, mil-extra.css, mil-popup.css.
   Truoc khi gop da xoa moi luat khong the khop phan tu nao (scripts/kiem-css.mjs): 199 KB -> 125 KB.
   Nap bang <link> SAU moi CSS cua Next (khong import) vi day la lop ghi de: dung doi thanh import.
   Quy uoc them/sua: DESIGN_SYSTEM.md muc 18. */

/* ===== tu plugins/bootstrap-grid.css ===== */
/*!
 * Bootstrap Grid v5.2.2 (https://getbootstrap.com/)
 * Copyright 2011-2022 The Bootstrap Authors
 * Copyright 2011-2022 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 */
:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13, 110, 253;--bs-secondary-rgb:108, 117, 125;--bs-success-rgb:25, 135, 84;--bs-info-rgb:13, 202, 240;--bs-warning-rgb:255, 193, 7;--bs-danger-rgb:220, 53, 69;--bs-light-rgb:248, 249, 250;--bs-dark-rgb:33, 37, 41;--bs-white-rgb:255, 255, 255;--bs-black-rgb:0, 0, 0;--bs-body-color-rgb:33, 37, 41;--bs-body-bg-rgb:255, 255, 255;--bs-font-sans-serif:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient:linear-gradient(180deg, #ffffff26, #fff0);--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:#0000002d;--bs-border-radius:.375rem;--bs-border-radius-sm:.25rem;--bs-border-radius-lg:.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-2xl:2rem;--bs-border-radius-pill:50rem;--bs-link-color:#0d6efd;--bs-link-hover-color:#0a58ca;--bs-code-color:#d63384;--bs-highlight-bg:#fff3cd}.container{--bs-gutter-x:30px;--bs-gutter-y:0;padding-right:var(--bs-gutter-x);padding-left:var(--bs-gutter-x);width:100%;margin-left:auto;margin-right:auto}@media (width>=576px){.container{max-width:100%}}@media (width>=768px){.container{max-width:100%}}@media (width>=992px){.container{max-width:1200px}}@media (width>=1200px){.container{max-width:1000px}}@media (width>=1400px){.container{max-width:1200px}}.row{--bs-gutter-x:30px;--bs-gutter-y:0;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x));flex-wrap:wrap;display:flex}.row>*{box-sizing:border-box;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y);flex-shrink:0}.col{flex:1 0}.col-6{flex:none;width:50%}@media (width>=768px){.col-md-6{flex:none;width:50%}}@media (width>=992px){.col-lg-2{flex:none;width:16.6667%}.col-lg-3{flex:none;width:25%}.col-lg-4{flex:none;width:33.3333%}.col-lg-5{flex:none;width:41.6667%}.col-lg-6{flex:none;width:50%}.col-lg-7{flex:none;width:58.3333%}.col-lg-8{flex:none;width:66.6667%}.col-lg-9{flex:none;width:75%}}@media (width>=1200px){.col-xl-5{flex:none;width:41.6667%}.col-xl-7{flex:none;width:58.3333%}}.flex-wrap{flex-wrap:wrap!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.align-items-start{align-items:flex-start!important}.m-0{margin:0!important}.p-0{padding:0!important}.px-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}

/* ===== tu theme-scoped.css ===== */
*,:before,:after{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0}:where(.mil-skin),:where(.mil-skin){color:#ffffffb3;-ms-scroll-chaining:none;overscroll-behavior:none;margin:0;padding:0;font-family:Outfit,sans-serif;font-size:16px;font-weight:300;line-height:150%}@media screen and (width<=768px){:where(.mil-skin),:where(.mil-skin){font-size:15px}}::-moz-selection{color:inherit;background-color:#0000}::selection{color:inherit;background-color:#0000}.mil-wrapper{max-width:100%;position:relative;overflow:hidden}.container{pointer-events:all}:where(.mil-skin) section{position:relative;overflow:hidden}:where(.mil-skin) h1,.mil-h1,:where(.mil-skin) h2,:where(.mil-skin) h3,:where(.mil-skin) h4,:where(.mil-skin) h5,:where(.mil-skin) h6,.mil-h6{color:var(--t-text);font-family:Outfit,sans-serif;font-weight:500;line-height:120%}@media screen and (width<=768px){:where(.mil-skin) h1 br,.mil-h1 br,:where(.mil-skin) h2 br,:where(.mil-skin) h3 br,:where(.mil-skin) h4 br,:where(.mil-skin) h5 br,:where(.mil-skin) h6 br,.mil-h6 br{display:none}}:where(.mil-skin) h1,.mil-h1{font-size:86px}@media screen and (width<=1400px){:where(.mil-skin) h1,.mil-h1{font-size:74px}}@media screen and (width<=1200px){:where(.mil-skin) h1,.mil-h1{font-size:72px}}@media screen and (width<=992px){:where(.mil-skin) h1,.mil-h1{font-size:58px}}@media screen and (width<=768px){:where(.mil-skin) h1,.mil-h1{font-size:34px}}:where(.mil-skin) h2{font-size:68px;line-height:120%}@media screen and (width<=1200px){:where(.mil-skin) h2{font-size:56px}}@media screen and (width<=992px){:where(.mil-skin) h2{font-size:44px}}@media screen and (width<=768px){:where(.mil-skin) h2{font-size:36px}}:where(.mil-skin) h3{font-size:42px}@media screen and (width<=1200px){:where(.mil-skin) h3{font-size:39px}}@media screen and (width<=992px){:where(.mil-skin) h3{font-size:36px}}@media screen and (width<=768px){:where(.mil-skin) h3{font-size:30px}}:where(.mil-skin) h4{font-size:28px}@media screen and (width<=1200px){:where(.mil-skin) h4{font-size:26px}}@media screen and (width<=992px){:where(.mil-skin) h4{font-size:24px}}@media screen and (width<=768px){:where(.mil-skin) h4{font-size:22px}}:where(.mil-skin) h5{font-size:20px;line-height:150%}@media screen and (width<=768px){:where(.mil-skin) h5{font-size:18px}}:where(.mil-skin) h6,.mil-h6{font-size:18px;line-height:150%}@media screen and (width<=1200px){:where(.mil-skin) h6,.mil-h6{font-size:17px}}@media screen and (width<=992px){:where(.mil-skin) h6,.mil-h6{font-size:16px}}@media screen and (width<=768px){:where(.mil-skin) h6,.mil-h6{font-size:21px}}.mil-no-wrap{white-space:nowrap}:where(.mil-skin) blockquote{color:var(--t-text);background-color:#ffffff0d;border-left:4px solid #ff9800;padding:60px;font-size:18px;font-style:italic}@media screen and (width<=768px){:where(.mil-skin) blockquote{padding:30px;font-size:16px}}.mil-text-sm{font-size:15px}.mil-upper{text-transform:uppercase;letter-spacing:2px;font-size:12px;font-weight:500}.mil-thin{font-weight:100}:where(.mil-skin) a{color:inherit;text-decoration:none}.mil-accent{color:var(--t-accent-text)}.mil-light,.mil-light a{color:#fff!important}.mil-muted{color:#ffffffe6}.mil-dark{color:var(--t-text)}.mil-light-soft{color:#fff6}.mil-center{text-align:center}.mil-suptitle{margin-bottom:60px;display:block;position:relative}.mil-suptitle:before{content:"";opacity:.2;background-color:#fff;width:600px;height:1px;position:absolute;top:10px;right:calc(100% + 30px)}@media screen and (width<=768px){.mil-suptitle{margin-bottom:60px}}.mil-divider{background-color:#ffffff1a;width:100%;height:1px}.mil-link{cursor:pointer;text-transform:uppercase;letter-spacing:2px;align-items:center;font-size:12px;font-weight:500;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.mil-link svg{background-color:#ffffff1a;border-radius:50%;width:40px;height:40px;margin-left:15px;padding:10px;-webkit-transition:all .4s cubic-bezier(0,0,.3642,1);transition:all .4s cubic-bezier(0,0,.3642,1)}.mil-link svg path{fill:#fff}.mil-link.mil-accent svg{background-color:#ffffff1a;-webkit-transition:all .4s cubic-bezier(0,0,.3642,1);transition:all .4s cubic-bezier(0,0,.3642,1)}.mil-link.mil-accent svg path{fill:#ff9800}.mil-link.mil-dark svg{background-color:#ffffff1a;-webkit-transition:all .4s cubic-bezier(0,0,.3642,1);transition:all .4s cubic-bezier(0,0,.3642,1)}.mil-link.mil-dark svg path{fill:#000}.mil-link:hover svg{-webkit-transform:scale(1.15);transform:scale(1.15)}.mil-link.mil-down-arrow svg{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.mil-link.mil-down-arrow:hover svg{-webkit-transform:scale(1.15)rotate(90deg);transform:scale(1.15)rotate(90deg)}.mil-button{cursor:pointer;letter-spacing:2px;color:#101014;text-transform:uppercase;background-color:#ff9800;border:none;border-radius:70px;justify-content:center;align-items:center;height:70px;padding:0 15px 0 50px;font-size:12px;font-weight:500;-webkit-transition:all .4s cubic-bezier(0,0,.3642,1);transition:all .4s cubic-bezier(0,0,.3642,1);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.mil-button span{white-space:nowrap}.mil-button svg{background-color:#101014;border-radius:50%;width:40px;height:40px;margin-left:30px;padding:10px;-webkit-transition:all .4s cubic-bezier(0,0,.3642,1);transition:all .4s cubic-bezier(0,0,.3642,1)}.mil-button svg path{fill:#ff9800}.mil-button.mil-icon-button-sm{height:40px;padding:0}.mil-button.mil-icon-button-sm svg{background-color:#ff9800;margin-left:0}.mil-button.mil-icon-button-sm svg path{fill:#000}.mil-button:hover{filter:brightness(110%);-webkit-transform:scale(1.015);transform:scale(1.015)}.mil-button:hover svg{-webkit-transform:scale(1.15);transform:scale(1.15)}@media screen and (width<=992px){.mil-button{height:60px;padding:0 10px 0 40px}.mil-button svg{margin-left:25px}}:where(.mil-skin) input,:where(.mil-skin) textarea{text-transform:uppercase;letter-spacing:2px;color:var(--t-text);background-color:#1a1b1f;border:none;border-bottom:1px solid #ffffff3d;width:100%;height:70px;margin-bottom:30px;padding:0 30px;font-family:Outfit,sans-serif;font-size:12px;font-weight:500;position:relative}:where(.mil-skin) input:focus,:where(.mil-skin) textarea:focus{outline:inherit}:where(.mil-skin) input::-webkit-input-placeholder,:where(.mil-skin) textarea::-webkit-input-placeholder{text-transform:uppercase;letter-spacing:2px;color:#ffffffb3;font-size:12px;font-weight:500}:where(.mil-skin) input:-ms-placeholder-shown,:where(.mil-skin) textarea:-ms-placeholder-shown{text-transform:uppercase;letter-spacing:2px;color:#ffffffb3;font-size:12px;font-weight:500}:where(.mil-skin) input::-moz-placeholder,:where(.mil-skin) textarea::-moz-placeholder{text-transform:uppercase;letter-spacing:2px;color:#ffffffb3;font-size:12px;font-weight:500}:where(.mil-skin) input::placeholder,:where(.mil-skin) textarea::placeholder{text-transform:uppercase;letter-spacing:2px;color:#ffffffb3;font-size:12px;font-weight:500}:where(.mil-skin) textarea{height:300px;padding:15px 30px}.mil-breadcrumbs{align-items:center;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;position:relative}.mil-breadcrumbs:before{content:"";background-color:#ffffff1a;width:100vw;height:1px;position:absolute;top:10px;right:calc(100% + 30px)}.mil-breadcrumbs li{list-style-type:none}.mil-breadcrumbs li:after{content:"/";color:var(--t-text);margin:0 15px}.mil-breadcrumbs li a{color:var(--t-text);text-transform:uppercase;letter-spacing:2px;white-space:nowrap;font-size:12px;font-weight:500;-webkit-transition:all .2s cubic-bezier(0,0,.3642,1);transition:all .2s cubic-bezier(0,0,.3642,1)}.mil-breadcrumbs li a:hover{color:var(--t-accent-text)}.mil-breadcrumbs li:last-child{cursor:not-allowed;margin-right:0}.mil-breadcrumbs li:last-child a{opacity:.4;pointer-events:none}.mil-breadcrumbs li:last-child:after{display:none}.mil-breadcrumbs.mil-light:before{background-color:#ffffff1a}.mil-breadcrumbs.mil-light li:after{color:#ffffffe6}.mil-breadcrumbs.mil-light li a:hover{color:var(--t-accent-text)!important}.mil-breadcrumbs.mil-center{justify-content:center}.mil-dark-bg{background-color:#131417;position:relative}.mil-dark-bg:before{content:"";pointer-events:none;z-index:2;width:100%;height:100%;position:absolute}.mil-dark-bg .mi-invert-fix{pointer-events:none;z-index:3;height:100%;position:relative}.mil-dark-bg .mi-invert-fix .container{pointer-events:all}.mil-mb-15{margin-bottom:15px}.mil-mb-30{margin-bottom:30px}.mil-mb-60{margin-bottom:60px}.mil-mb-90{margin-bottom:90px}.mil-p-120-120{padding-top:120px;padding-bottom:120px}@media screen and (width<=992px){.mil-p-120-120{padding-top:90px;padding-bottom:90px}}.mil-btn-space{margin-right:30px}@media screen and (width<=500px){.mil-btn-space{margin-bottom:30px;margin-right:50px}}::-webkit-scrollbar{display:none}.mil-logo{font-size:42px;font-weight:500;line-height:100%}@media screen and (width<=992px){.mil-logo{font-size:36px}}.mil-frame{z-index:2;pointer-events:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:50px 60px 60px;display:-webkit-box;display:-ms-flexbox;display:flex;position:fixed}@media screen and (width<=1200px){.mil-frame{z-index:999;height:90px;padding:0}.mil-frame .mil-frame-top{backdrop-filter:blur(8px);background-color:#0a0a0bf2;border-bottom:1px solid #ffffff1a;height:90px;padding:0 30px}.mil-frame .mil-frame-top .mil-logo{color:#fff}.mil-frame .mil-frame-top .mil-menu-btn span,.mil-frame .mil-frame-top .mil-menu-btn span:after,.mil-frame .mil-frame-top .mil-menu-btn span:before{background:#fff}}.mil-frame .mil-frame-bottom{justify-content:space-between;align-items:flex-end;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}@media screen and (width<=1200px){.mil-frame .mil-frame-bottom{display:none}}.mil-frame .mil-frame-bottom .mil-current-page{pointer-events:none;text-transform:uppercase;letter-spacing:2px;color:var(--t-text);width:300px;font-size:12px;font-weight:500;-webkit-transform:rotate(-90deg)translate(138px)translateY(-138px);transform:rotate(-90deg)translate(138px)translateY(-138px)}.mil-frame .mil-frame-bottom .mil-back-to-top{pointer-events:all;width:300px;-webkit-transform:rotate(-90deg)translate(130px)translateY(130px);transform:rotate(-90deg)translate(130px)translateY(130px)}.mil-frame-top{justify-content:space-between;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.mil-frame-top .mil-logo{pointer-events:all;color:var(--t-text)}.mil-menu-btn{pointer-events:all;cursor:pointer;justify-content:center;align-items:center;height:28px;-webkit-transition:all .4s cubic-bezier(0,0,.3642,1);transition:all .4s cubic-bezier(0,0,.3642,1);display:-webkit-box;display:-ms-flexbox;display:flex}@media screen and (width<=992px){.mil-menu-btn{-webkit-transform:scale(.85);transform:scale(.85)}}.mil-menu-btn span,.mil-menu-btn span:after,.mil-menu-btn span:before{content:"";-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#f3f3f4;width:28px;height:2.5px;-webkit-transition:inherit;transition:inherit;display:block}.mil-menu-btn span{position:relative}.mil-menu-btn span:after,.mil-menu-btn span:before{position:absolute}.mil-menu-btn span:before{top:-9px}.mil-menu-btn span:after{width:18px;top:9px}.mil-menu-btn.mil-active span{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.mil-menu-btn.mil-active span:before{-webkit-transform:translateY(9px)rotate(-90deg);transform:translateY(9px)rotate(-90deg)}.mil-menu-btn.mil-active span:after{opacity:0;width:24px;-webkit-transform:translateY(-9px)rotate(-90deg);transform:translateY(-9px)rotate(-90deg)}.mil-menu-frame{z-index:9;opacity:0;pointer-events:none;background-color:#0a0a0b;width:100%;height:100vh;-webkit-transition:all .4s cubic-bezier(0,0,.3642,1);transition:all .4s cubic-bezier(0,0,.3642,1);position:fixed}.mil-menu-frame .container{pointer-events:none}.mil-menu-frame .mil-frame-top{width:100%;padding:50px 60px;position:absolute;top:0;left:0}@media screen and (width<=1200px){.mil-menu-frame .mil-frame-top{display:none}}.mil-menu-frame .mil-frame-top .mil-logo{color:#fff}.mil-menu-frame .mil-frame-top .mil-menu-btn span,.mil-menu-frame .mil-frame-top .mil-menu-btn span:after,.mil-menu-frame .mil-frame-top .mil-menu-btn span:before{background-color:#fff}.mil-menu-frame .mil-main-menu{opacity:0;-webkit-transition:all .4s cubic-bezier(0,0,.3642,1);transition:all .4s cubic-bezier(0,0,.3642,1);-webkit-transform:translate(-30px);transform:translate(-30px)}@media screen and (width<=1200px){.mil-menu-frame .mil-main-menu{-webkit-transform:translateY(30px);transform:translateY(30px)}}.mil-menu-frame .mil-menu-right-frame{opacity:0;border-left:1px solid #ffffff1a;align-items:flex-end;height:100vh;padding-left:60px;-webkit-transition:all .4s cubic-bezier(0,0,.3642,1);transition:all .4s cubic-bezier(0,0,.3642,1);display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;-webkit-transform:translateY(30px);transform:translateY(30px)}.mil-menu-frame .mil-menu-right-frame .mil-menu-right{padding-bottom:60px}.mil-menu-frame .mil-menu-right-frame .mil-animation-in{opacity:0;-webkit-transition:all .4s cubic-bezier(0,0,.3642,1);transition:all .4s cubic-bezier(0,0,.3642,1);position:absolute;top:-320px;right:0;-webkit-transform:translateY(-60px);transform:translateY(-60px)}@media screen and (width<=1200px){.mil-menu-frame .mil-menu-right-frame{display:none}}@media screen and (height<=800px){.mil-menu-frame .mil-menu-right-frame{display:none}}.mil-menu-frame.mil-active{opacity:1;pointer-events:all}.mil-menu-frame.mil-active .container{pointer-events:all}.mil-menu-frame.mil-active .mil-main-menu{opacity:1;-webkit-transition-delay:.4s;transition-delay:.4s;-webkit-transform:translateY(0);transform:translateY(0)}.mil-menu-frame.mil-active .mil-menu-right-frame{opacity:1;-webkit-transition-delay:.6s;transition-delay:.6s;-webkit-transform:translateY(0);transform:translateY(0)}.mil-menu-frame.mil-active .mil-menu-right-frame .mil-animation-in{opacity:1;-webkit-transition-delay:.8s;transition-delay:.8s;-webkit-transform:translateY(0);transform:translateY(0)}.mil-menu-list li{margin-bottom:15px;list-style-type:none}.mil-menu-list li:last-child{margin-bottom:0}.mil-menu-list li a{-webkit-transition:all .2s cubic-bezier(0,0,.3642,1);transition:all .2s cubic-bezier(0,0,.3642,1);display:block}.mil-menu-list li a:hover{color:#fff;-webkit-transform:translate(5px);transform:translate(5px)}.mil-menu-list.mil-dark li a{color:var(--t-text)}.mil-main-menu{align-items:center;height:100vh;display:-webkit-box;display:-ms-flexbox;display:flex}.mil-main-menu ul{margin:0;padding:0}.mil-main-menu ul li{margin-bottom:40px}.mil-main-menu ul li:last-child{margin-bottom:0}.mil-main-menu ul li a{color:#fffc;align-items:center;font-size:34px;font-weight:500;-webkit-transition:all .4s cubic-bezier(0,0,.3642,1);transition:all .4s cubic-bezier(0,0,.3642,1);display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}@media screen and (width<=992px){.mil-main-menu ul li a{font-size:26px}}.mil-main-menu ul li a:before{content:"";background-color:#fff6;border-radius:50%;width:10px;height:10px;-webkit-transition:all .4s cubic-bezier(0,0,.3642,1);transition:all .4s cubic-bezier(0,0,.3642,1);position:absolute;left:0;-webkit-transform:scale(0);transform:scale(0)}.mil-main-menu ul li a:hover{color:#fff}.mil-main-menu ul li a.mil-active{padding-left:25px}.mil-main-menu ul li a.mil-active:before{background-color:#ff9800;-webkit-transform:scale(1);transform:scale(1)}.mil-main-menu ul li.mil-active>a{color:var(--t-accent-text)}.mil-main-menu ul li.mil-active>a:hover{filter:brightness(110%);color:var(--t-accent-text)!important}.mil-main-menu ul li.mil-has-children>a:hover{color:#fff;padding-left:25px}.mil-main-menu ul li.mil-has-children>a:hover:before{-webkit-transform:scale(1);transform:scale(1)}.mil-main-menu ul li.mil-has-children ul{max-height:0;padding-left:25px;-webkit-transition:all .6s cubic-bezier(0,0,.3642,1);transition:all .6s cubic-bezier(0,0,.3642,1);overflow:hidden}.mil-main-menu ul li.mil-has-children ul li{margin-bottom:5px}.mil-main-menu ul li.mil-has-children ul li:first-child{margin-top:40px}.mil-main-menu ul li.mil-has-children ul li a{color:#fff6;letter-spacing:2px;text-transform:uppercase;font-size:12px;font-weight:500;display:block}.mil-main-menu ul li.mil-has-children ul li a:before{display:none}.mil-main-menu ul li.mil-has-children ul li a:hover{color:#fffc;-webkit-transform:translate(5px);transform:translate(5px)}.mil-main-menu ul li.mil-has-children ul.mil-active{max-height:200px}@media screen and (width<=1200px){.mil-main-menu{justify-content:center}.mil-main-menu ul{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.mil-main-menu ul li{margin-bottom:30px}.mil-main-menu ul li a{justify-content:center}.mil-main-menu ul li a:before{display:none}.mil-main-menu ul li a.mil-active{padding-left:0!important}.mil-main-menu ul li.mil-has-children ul{padding-left:0}.mil-main-menu ul li.mil-has-children ul li:first-child{margin-top:30px}}.mil-inner-banner .mil-banner-content{padding:150px 0 0}@media screen and (width<=1200px){.mil-inner-banner .mil-banner-content{padding:180px 0 0}}@-webkit-keyframes move{0%{-webkit-transform:translateY(-75px);transform:translateY(-75px)}50%{-webkit-transform:translateY(75px);transform:translateY(75px)}to{-webkit-transform:translateY(-75px);transform:translateY(-75px)}}@keyframes move{0%{-webkit-transform:translateY(-75px);transform:translateY(-75px)}50%{-webkit-transform:translateY(75px);transform:translateY(75px)}to{-webkit-transform:translateY(-75px);transform:translateY(-75px)}}.mil-animation-frame{pointer-events:none;width:100%;height:100vh;-webkit-animation:10s linear infinite jump;animation:10s linear infinite jump;position:absolute;top:0}.mil-animation{opacity:.2;pointer-events:none;width:300px;height:300px;display:inline-block;position:absolute}.mil-position-1{top:100px;right:100px}.mil-position-1 .mil-pentagon div{border-top:.1px solid #fff}.mil-position-4{top:-60px;right:20%}.mil-position-4 .mil-pentagon div{border-top:.1px solid #fff}.mil-position-4 .mil-dodecahedron{-webkit-animation-delay:.5s;animation-delay:.5s}@media screen and (width<=1400px){.mil-position-4{display:none}}.mil-position-4.mil-dark .mil-pentagon div{border-top:.1px solid #000}.mil-dodecahedron{width:100px;height:223px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-animation:100s linear infinite rotate;animation:100s linear infinite rotate;position:relative;top:40px;left:100px}@-webkit-keyframes rotate{0%{-webkit-transform:rotateX(0)rotateY(360deg)rotate(360deg);transform:rotateX(0)rotateY(360deg)rotate(360deg)}to{-webkit-transform:rotateX(360deg)rotateY(0)rotate(-360deg);transform:rotateX(360deg)rotateY(0)rotate(-360deg)}}@keyframes rotate{0%{-webkit-transform:rotateX(0)rotateY(360deg)rotate(360deg);transform:rotateX(0)rotateY(360deg)rotate(360deg)}to{-webkit-transform:rotateX(360deg)rotateY(0)rotate(-360deg);transform:rotateX(360deg)rotateY(0)rotate(-360deg)}}.mil-pentagon{width:100px;position:absolute}.mil-pentagon:first-child{-webkit-transform:rotateY(.2turn)translateZ(69px)rotateX(26.5deg);transform:rotateY(.2turn)translateZ(69px)rotateX(26.5deg)}.mil-pentagon:nth-child(6){bottom:0;-webkit-transform:rotateY(.2turn)translateZ(-69px)rotateX(206.5deg);transform:rotateY(.2turn)translateZ(-69px)rotateX(206.5deg)}.mil-pentagon:nth-child(2){-webkit-transform:rotateY(.4turn)translateZ(69px)rotateX(26.5deg);transform:rotateY(.4turn)translateZ(69px)rotateX(26.5deg)}.mil-pentagon:nth-child(7){bottom:0;-webkit-transform:rotateY(.4turn)translateZ(-69px)rotateX(206.5deg);transform:rotateY(.4turn)translateZ(-69px)rotateX(206.5deg)}.mil-pentagon:nth-child(3){-webkit-transform:rotateY(.6turn)translateZ(69px)rotateX(26.5deg);transform:rotateY(.6turn)translateZ(69px)rotateX(26.5deg)}.mil-pentagon:nth-child(8){bottom:0;-webkit-transform:rotateY(.6turn)translateZ(-69px)rotateX(206.5deg);transform:rotateY(.6turn)translateZ(-69px)rotateX(206.5deg)}.mil-pentagon:nth-child(4){-webkit-transform:rotateY(.8turn)translateZ(69px)rotateX(26.5deg);transform:rotateY(.8turn)translateZ(69px)rotateX(26.5deg)}.mil-pentagon:nth-child(9){bottom:0;-webkit-transform:rotateY(.8turn)translateZ(-69px)rotateX(206.5deg);transform:rotateY(.8turn)translateZ(-69px)rotateX(206.5deg)}.mil-pentagon:nth-child(5){-webkit-transform:rotateY(1turn)translateZ(69px)rotateX(26.5deg);transform:rotateY(1turn)translateZ(69px)rotateX(26.5deg)}.mil-pentagon:nth-child(10){bottom:0;-webkit-transform:rotateY(1turn)translateZ(-69px)rotateX(206.5deg);transform:rotateY(1turn)translateZ(-69px)rotateX(206.5deg)}.mil-pentagon:nth-child(11){-webkit-transform:translateZ(69px)rotateX(-90deg);transform:translateZ(69px)rotateX(-90deg)}.mil-pentagon:nth-child(12){bottom:0;-webkit-transform:translateZ(-69px)rotateX(90deg);transform:translateZ(-69px)rotateX(90deg)}.mil-pentagon div{-webkit-transform-origin:bottom;transform-origin:bottom;width:100px;height:69px;position:absolute}.mil-pentagon div:first-child{-webkit-transform:rotate(.2turn);transform:rotate(.2turn)}.mil-pentagon div:nth-child(2){-webkit-transform:rotate(.4turn);transform:rotate(.4turn)}.mil-pentagon div:nth-child(3){-webkit-transform:rotate(.6turn);transform:rotate(.6turn)}.mil-pentagon div:nth-child(4){-webkit-transform:rotate(.8turn);transform:rotate(.8turn)}.mil-pentagon div:nth-child(5){-webkit-transform:rotate(1turn);transform:rotate(1turn)}@-webkit-keyframes jump{0%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}50%{-webkit-transform:translateY(30px);transform:translateY(30px)}to{-webkit-transform:translateY(-30px);transform:translateY(-30px)}}@keyframes jump{0%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}50%{-webkit-transform:translateY(30px);transform:translateY(30px)}to{-webkit-transform:translateY(-30px);transform:translateY(-30px)}}.mil-service-card-sm{padding:60px 30px;display:block;position:relative}.mil-service-card-sm p{opacity:0;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;-webkit-transition:all .4s cubic-bezier(0,0,.3642,1);transition:all .4s cubic-bezier(0,0,.3642,1);display:-webkit-box;overflow:hidden;-webkit-transform:translateY(10px);transform:translateY(10px)}.mil-service-card-sm .mil-button{filter:grayscale();opacity:.4;-webkit-transform:scale(.3);transform:scale(.3)}.mil-service-card-sm:before{content:"";background-color:#ff9800;width:0;height:4px;-webkit-transition:all .6s cubic-bezier(0,0,.3642,1);transition:all .6s cubic-bezier(0,0,.3642,1);position:absolute;top:0;left:0}.mil-service-card-sm:hover p{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}.mil-service-card-sm:hover .mil-button{filter:grayscale(0);opacity:1;-webkit-transform:scale(1);transform:scale(1)}.mil-service-card-sm:hover:before{width:100%}@media screen and (width<=992px){.mil-service-card-sm p{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}.mil-service-card-sm .mil-button{filter:grayscale(0);opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.mil-services-grid{border-top:1px solid #ffffff1a}.mil-services-grid .mil-services-grid-item{border-right:1px solid #ffffff1a}.mil-services-grid .mil-services-grid-item:first-child{border-left:1px solid #ffffff1a}@media screen and (width<=992px){.mil-services-grid{padding-bottom:90px}.mil-services-grid .mil-services-grid-item{border-bottom:1px solid #ffffff1a}.mil-services-grid .mil-services-grid-item:nth-child(3){border-left:1px solid #ffffff1a}}@media screen and (width<=768px){.mil-services-grid{padding-bottom:90px}.mil-services-grid .mil-services-grid-item{border-bottom:1px solid #ffffff1a;border-left:1px solid #ffffff1a}}.mil-service-list li{text-transform:uppercase;letter-spacing:2px;border-bottom:1px solid #ffffff1a;padding:15px 0;font-size:12px;font-weight:500;list-style-type:none}.mil-service-list li:first-child{border-top:1px solid #ffffff1a}.mil-service-list.mil-light li{color:#fff9}.mil-service-list.mil-dark li{border-bottom:1px solid #ffffff23}.mil-service-list.mil-dark li:first-child{border-top:1px solid #ffffff23}.mil-social-icons{margin:0;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex}.mil-social-icons.mil-center{justify-content:center}.mil-social-icons li{margin-right:15px;list-style-type:none}.mil-social-icons li:last-child{margin-right:0}.mil-social-icons li a{color:#fff;font-size:18px;-webkit-transition:all .4s cubic-bezier(0,0,.3642,1);transition:all .4s cubic-bezier(0,0,.3642,1)}.mil-social-icons li a:hover{color:var(--t-accent-text)}.mil-social-icons.mil-dark li a{color:var(--t-text)}.mil-social-icons.mil-dark li a:hover{color:var(--t-accent-text)}.mil-blog-card{display:block}.mil-labels{align-items:center;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex}.mil-labels .mil-label{margin-right:15px}.mil-labels .mil-label:last-child{margin-right:0}.mil-footer-menu{margin-bottom:120px}.mil-footer-menu ul li{margin-bottom:30px;list-style-type:none}.mil-footer-menu ul li a{color:#ffffffe6;font-size:28px;font-weight:500;-webkit-transition:all .4s cubic-bezier(0,0,.3642,1);transition:all .4s cubic-bezier(0,0,.3642,1);display:block}.mil-footer-menu ul li a:hover{color:var(--t-accent-text);-webkit-transform:translate(10px);transform:translate(10px)}@media screen and (width<=768px){.mil-footer-menu ul li a{font-size:22px}}.mil-footer-menu ul li.mil-active a{color:var(--t-accent-text)}.mil-footer-menu ul li.mil-active a:hover{-webkit-transform:none;transform:none}@media screen and (width<=768px){.mil-footer-menu{margin-bottom:60px}}.mil-subscribe-form{width:100%;height:70px;position:relative}.mil-subscribe-form input{color:var(--t-text);text-transform:uppercase;letter-spacing:2px;background-color:#ffffff1a;border:none;border-radius:70px;width:100%;height:100%;padding:0 0 0 50px;font-size:12px;font-weight:500;-webkit-transition:all .4s cubic-bezier(0,0,.3642,1);transition:all .4s cubic-bezier(0,0,.3642,1)}.mil-subscribe-form input::-webkit-input-placeholder{color:gray;text-transform:uppercase;letter-spacing:2px;font-family:Outfit,sans-serif;font-size:12px;font-weight:500}.mil-subscribe-form input::placeholder{color:gray;text-transform:uppercase;letter-spacing:2px;font-family:Outfit,sans-serif;font-size:12px;font-weight:500}.mil-subscribe-form input:-ms-placeholder-shown{color:gray;text-transform:uppercase;letter-spacing:2px;font-family:Outfit,sans-serif;font-size:12px;font-weight:500}.mil-subscribe-form input::-moz-placeholder{color:gray;text-transform:uppercase;letter-spacing:2px;font-family:Outfit,sans-serif;font-size:12px;font-weight:500}.mil-subscribe-form input::placeholder{color:gray;text-transform:uppercase;letter-spacing:2px;font-family:Outfit,sans-serif;font-size:12px;font-weight:500}.mil-subscribe-form input:focus{outline:inherit;background-color:#ffffff1f}.mil-subscribe-form input:hover{background-color:#ffffff14}.mil-subscribe-form .mil-button{position:absolute;top:15px;right:15px}.mil-accordion-group{border-bottom:1px solid #ffffff45;margin-bottom:30px}.mil-accordion-content{height:0;overflow:hidden}.mil-frame{opacity:1;-webkit-transition:all .6s;transition:all .6s;-webkit-transform:scale(1);transform:scale(1)}.mil-main-transition{margin-top:0;-webkit-transition:all .6s .3s;transition:all .6s .3s}.mil-main-transition .mil-animation-frame{opacity:1;margin-top:0;-webkit-transition:all .6s .3s;transition:all .6s .3s}
/* Do 20/09/2026 tren 390/412px: .mil-button/.mil-link (CTA "Dat lich tu van" + so dien thoai, dung o hau het trang qua _mil/inner.tsx) do 12px, duoi nguong doc di dong 13px. */
@media (max-width: 640px) {
  .mil-button,
  .mil-link {
    font-size: 13px;
  }
}


/* ===== tu alodev-scoped.css ===== */
.mil-logo{align-items:center;gap:11px;font-size:25px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.mil-logo-mark{flex-shrink:0;width:auto;height:30px;display:block;overflow:visible}.mil-logo-mark-wrap{flex-shrink:0;height:30px;display:block;position:relative}.mil-logo-mark-wrap .mil-logo-mark{width:auto;height:100%;display:block}.mil-logo-ink{width:100%;height:100%;display:block;position:absolute;inset:0}@media screen and (width<=992px){.mil-logo-mark-wrap{height:26px}}@media screen and (width<=992px){.mil-logo{gap:9px;font-size:20px}.mil-logo-mark{height:26px}}@keyframes ah-logo-word-in{0%{opacity:0;letter-spacing:.12em;transform:translateY(8px)}to{opacity:1;letter-spacing:normal;transform:translateY(0)}}.logo-intro{z-index:100000;color:#f3f3f4;background-color:#0a0a0b;justify-content:center;align-items:center;transition:background-color .56s;display:flex;position:fixed;inset:0}.logo-intro.is-morphing{background-color:#0000}.logo-intro-lockup{flex-direction:column;align-items:center;gap:clamp(20px,3.4vmin,40px);display:flex}.logo-intro-mark{aspect-ratio:2320/1370;transform-origin:50%;will-change:transform;width:min(40vmin,280px);transition:transform .72s cubic-bezier(.62,0,.2,1);transform:translate(0)scale(1)}.logo-intro.is-morphing .logo-intro-mark{transform:translate(var(--intro-dx,0), var(--intro-dy,0)) scale(var(--intro-scale,1))}.logo-intro-mark-canvas{aspect-ratio:2440/1520;width:min(46vmin,320px)}.logo-intro-canvas{width:100%;height:100%;display:block}.logo-intro-word{letter-spacing:-.01em;color:currentColor;opacity:0;font-size:clamp(20px,3.2vmin,34px);font-weight:600;animation:.7s cubic-bezier(.22,1,.3,1) 1.75s forwards ah-logo-word-in}.logo-intro-word>span{color:var(--t-accent-text)}.logo-intro.is-morphing .logo-intro-word{opacity:0;transition:opacity .3s;animation:none}@media (prefers-reduced-motion: reduce) and (update: none){.logo-intro{display:none}}@font-face{font-family:SVN-Gilroy;src:url(/fonts/svn-gilroy/regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:SVN-Gilroy;src:url(/fonts/svn-gilroy/medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:SVN-Gilroy;src:url(/fonts/svn-gilroy/semibold.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:SVN-Gilroy;src:url(/fonts/svn-gilroy/bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:SVN-Gilroy;src:url(/fonts/svn-gilroy/heavy.woff2)format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:SVN-Gilroy;src:url(/fonts/svn-gilroy/black.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:SVN-Gilroy;src:url(/fonts/svn-gilroy/bold_italic.woff2)format("woff2");font-weight:700;font-style:italic;font-display:swap}:root{--mil-font:var(--chu-than), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, system-ui, sans-serif}:where(.mil-skin),.mil-wrapper,:where(.mil-skin) h1,:where(.mil-skin) h2,:where(.mil-skin) h3,:where(.mil-skin) h4,:where(.mil-skin) h5,:where(.mil-skin) h6,:where(.mil-skin) p,:where(.mil-skin) a,:where(.mil-skin) li,:where(.mil-skin) span:not([class*=fa]),:where(.mil-skin) blockquote,:where(.mil-skin) label,:where(.mil-skin) input,:where(.mil-skin) textarea,:where(.mil-skin) button,:where(.mil-skin) select,.mil-logo,.mil-h1,.mil-suptitle,.mil-button,.mil-link,.mil-menu-list,.mil-main-menu{font-family:var(--mil-font)!important}:where(.mil-skin) i[class*=fa],.fa,.fab,.far{font-family:revert!important}.mil-accordion-content{color:#f3f3f4d1;line-height:1.75}.mil-content .mil-h1.mil-accent{line-height:.9}.mil-service-card-sm .mil-text-sm{opacity:.7}.mil-inner-banner h1,.mil-inner-banner .mil-h1{font-size:clamp(30px,min(6vw,8vh),76px)!important;line-height:1.08!important}:where(.mil-skin) h2.mil-suptitle{font-size:16px;font-weight:300;line-height:24px}.mil-thin{font-weight:inherit;opacity:1;color:inherit}.mil-subscribe-form button{z-index:1;margin:0;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.mil-subscribe-form input{color:#ffffffeb;background-color:#ffffff12;border:1px solid #ffffff1f;padding:0 62px 0 28px;transition:border-color .3s,background-color .3s}.mil-subscribe-form input:focus{background-color:#ffffff1a;border-color:#ff9800cc}.mil-subscribe-form input::placeholder{color:#ffffff61}.mil-rows ul{margin:0;padding:0;list-style:none}.mil-rows li{border-bottom:1px solid #ffffff23}.mil-row{color:inherit;grid-template-columns:minmax(180px,1.1fr) 1.5fr minmax(120px,auto);align-items:baseline;gap:28px;padding:26px 4px;text-decoration:none;transition:padding-left .35s cubic-bezier(0,0,.36,1),background-color .35s;display:grid}.mil-rows-num .mil-row{grid-template-columns:52px minmax(160px,1fr) 1.5fr minmax(120px,auto)}.mil-row-head{letter-spacing:1.8px;text-transform:uppercase;color:#ffffffb3;border-bottom:1px solid #ffffff37;padding:0 4px 16px;font-size:11px}.mil-rows-dark .mil-row-head{color:#ffffff61;border-color:#fff3}.mil-rows-dark li{border-color:#ffffff1f}.mil-row-num{letter-spacing:1.6px;color:#ffffffb3;font-size:12px}.mil-row-name{color:#ffffffe6;font-size:20px;line-height:1.35}.mil-row-desc{color:#ffffffb3;font-size:15px;line-height:1.6}.mil-row-meta{letter-spacing:1.4px;text-transform:uppercase;color:#ffffffb3;text-align:right;font-size:11px}.mil-rows-dark .mil-row-num{color:#ffffff4d}.mil-rows-dark .mil-row-name{color:#ffffffe6}.mil-rows-dark .mil-row-desc{color:#ffffff80}.mil-rows-dark .mil-row-meta{color:#fff6}.mil-rows-strong .mil-row-meta{letter-spacing:0;text-transform:none;color:#ffffffe0;white-space:nowrap;font-size:17px}.mil-rows-strong .mil-row-head .mil-row-meta{letter-spacing:1.8px;text-transform:uppercase;color:#ffffffb3;font-size:11px}.mil-rows-dark.mil-rows-strong .mil-row-meta{color:#ffffffeb}:where(.mil-skin) a.mil-row:hover,.mil-rows a.mil-row:hover{background-color:#ff98000a;padding-left:18px}.mil-rows-dark a.mil-row:hover{background-color:#ff98001a}:where(.mil-skin) a.mil-row:hover .mil-row-meta,:where(.mil-skin) a.mil-row:hover .mil-row-name{color:var(--t-accent-text)}.mil-rows-dark a.mil-row:hover .mil-row-name,.mil-rows-dark a.mil-row:hover .mil-row-meta{color:#ffa726}@media (width<=768px){.mil-row,.mil-rows-num .mil-row{grid-template-columns:1fr auto;gap:6px 16px;padding:20px 4px}.mil-row-num{display:none}.mil-row-desc{grid-column:1/-1}.mil-row-name{font-size:17px}.mil-row-head{display:none}}.mil-dark-bg:before{width:calc(100% + 2px);height:calc(100% + 2px);top:-1px;left:-1px}
/* ── Nut 3D "vat sang cong mat" (bien the B, chot 23/08/2026) ──
   Nen chuyen mau sang o dinh toi dan xuong day = mat cong hung sang.
   Rim light 1px tren + vet toi 1px duoi = canh vat.
   Luc nhan thi dao chieu bong vao trong.
   KHONG doi mau/size/padding/bo goc/bo cuc cua nut. */
.mil-button{
  background-image:linear-gradient(180deg,#ffb44a 0%,#ff9800 45%,#f28c00 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.62),inset 0 -1px 2px rgba(0,0,0,.16),0 1px 2px rgba(26,28,45,.18),0 9px 20px -8px rgba(255,152,0,.42);
  transition:filter .2s ease,transform .18s ease,box-shadow .18s ease
}
.mil-button:hover{
  filter:brightness(1.06);transform:translateY(-1px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.68),inset 0 -1px 2px rgba(0,0,0,.16),0 2px 4px rgba(26,28,45,.2),0 13px 26px -8px rgba(255,152,0,.5)
}
.mil-button:active{
  transform:translateY(1px);filter:brightness(.97);
  box-shadow:inset 0 2px 4px rgba(0,0,0,.22),inset 0 -1px 0 rgba(255,255,255,.28)
}
.mil-button svg{box-shadow:inset 0 1px 2px rgba(0,0,0,.3)}


/* ===== tu mil-tokens.css ===== */
:root[data-theme=dark]{--t-bg:#0a0a0b;--t-surface:#131417;--t-surface-2:#0f1013;--t-text:#f3f3f4;--t-text-2:#c8c9d0;--t-muted:#a5a6ad;--t-faint:#93949b;--t-line-strong:#ffffff5c;--t-line:#ffffff26;--t-line-soft:#ffffff14;--t-hover:#ffffff0d;--t-on-accent:#101014;--t-accent:#ff9800;--t-accent-text:#ffb04a;--t-good:#4ade80;--t-warn:#fbbf24;--t-bad:#f87171}:root,:root[data-theme=light]{--t-bg:#0a0a0b;--t-surface:#131417;--t-surface-2:#0f1013;--t-text:#f3f3f4;--t-text-2:#c8c9d0;--t-muted:#a5a6ad;--t-faint:#93949b;--t-line-strong:#ffffff5c;--t-line:#ffffff26;--t-line-soft:#ffffff14;--t-hover:#ffffff0d;--t-on-accent:#101014;--t-accent:#ff9800;--t-accent-text:#ffb04a;--t-good:#4ade80;--t-warn:#fbbf24;--t-bad:#f87171}.mil-skin .mil-dark-bg .mi-invert-fix{--t-bg:#08080a;--t-surface:#0d0d10;--t-surface-2:#0a0a0c;--t-text:#ffffffe6;--t-text-2:#ffffffb8;--t-muted:#ffffff9e;--t-faint:#ffffff80;--t-line-strong:#ffffff4d;--t-line:#ffffff21;--t-line-soft:#ffffff12;--t-hover:#ffffff08;--t-accent-text:#ffa726}.mil-skin .mil-dark-bg .mi-invert-fix .mil-button .mil-arrow{background-color:#ffffff1a!important}:root[data-theme=light] body,:root[data-theme=light] .mil-skin{background-color:var(--t-bg)}:root[data-theme=light] .mil-skin:after{opacity:.015}:root[data-theme=light] .mil-skin{color:var(--t-text)}:root[data-theme=light] .mil-skin .mil-muted,:root[data-theme=light] .mil-skin h1.mil-muted,:root[data-theme=light] .mil-skin h2.mil-muted,:root[data-theme=light] .mil-skin h3.mil-muted{color:var(--t-text)!important}:root[data-theme=light] .mil-skin .mil-light-soft,:root[data-theme=light] .mil-skin .mil-cta-sub{color:var(--t-muted)!important}:root[data-theme=light] .mil-skin .mil-suptitle,:root[data-theme=light] .mil-skin .mil-upper{color:var(--t-faint)!important}:root[data-theme=light] .mil-skin .mil-banner-content .mil-button,:root[data-theme=light] .mil-skin .mil-cta .mil-button{border-color:var(--t-line-strong)!important;color:var(--t-text)!important}:root[data-theme=light] .mil-skin .mil-banner-content .mil-button .mil-arrow,:root[data-theme=light] .mil-skin .mil-cta .mil-button .mil-arrow{background-color:#ffffff1a!important}:root[data-theme=light] .mil-skin .mil-banner-content .mil-button .mil-arrow path,:root[data-theme=light] .mil-skin .mil-cta .mil-button .mil-arrow path{fill:var(--t-text)!important}:root[data-theme=light] .mil-skin .mil-button:hover .mil-arrow path{fill:var(--t-on-accent)!important}:root[data-theme=light] .mil-skin .mil-logo,:root[data-theme=light] .mil-skin .mil-frame-top a,:root[data-theme=light] .mil-skin .mil-frame-act,:root[data-theme=light] .mil-skin .mil-menu-btn{color:var(--t-text)}:root[data-theme=light] .mil-skin .mil-menu-frame{background-color:#08080a}:root[data-theme=light] .mil-skin .mil-menu-frame a,:root[data-theme=light] .mil-skin .mil-menu-frame .mil-menu-colh,:root[data-theme=light] .mil-skin .mil-menu-frame .mil-muted{color:#ffffffb8!important}:root[data-theme=light] .mil-skin .mil-menu-frame a:hover,:root[data-theme=light] .mil-skin .mil-menu-frame .mil-logo{color:#fff!important}@media screen and (width<=1200px){:root[data-theme=light] .mil-skin .mil-frame-top .mil-logo,:root[data-theme=light] .mil-skin .mil-frame-top .mil-frame-act,:root[data-theme=light] .mil-skin .mil-frame-top a{color:#fff!important}}:root[data-theme=light] .mil-skin footer{color:var(--t-text)}:root[data-theme=light] .fab-stack .fab{border-color:var(--t-line)!important;background:#131417eb!important}:root[data-theme=light] .fab-stack .fab svg,:root[data-theme=light] .fab-stack .fab-inner{color:var(--t-text)!important}:root[data-theme=dark] body,:root[data-theme=light] body,:root[data-theme=dark] .mil-wrapper,:root[data-theme=light] .mil-wrapper{background-color:#0a0a0b!important}:root[data-theme=dark]{--color-ink:#f3f3f4;--color-ink-soft:#d7d8dd}.mil-skin .mil-prose:not(#zzz-khong-ton-tai),.mil-skin .mil-prose:not(#zzz-khong-ton-tai) p,.mil-skin .mil-prose:not(#zzz-khong-ton-tai) li,.mil-skin .mil-prose:not(#zzz-khong-ton-tai) dd{color:#f3f3f4d6!important}.mil-skin .mil-dark-bg .mil-prose:not(#zzz-khong-ton-tai),.mil-skin .mil-dark-bg .mil-prose:not(#zzz-khong-ton-tai) p,.mil-skin .mil-dark-bg .mil-prose:not(#zzz-khong-ton-tai) li{color:#fffc!important}:root[data-theme=light] .mil-skin .mil-breadcrumbs.mil-light,:root[data-theme=light] .mil-skin .mil-breadcrumbs.mil-light a{color:var(--t-text-2)!important}:root[data-theme=light] .mil-skin .mil-breadcrumbs.mil-light a:hover{color:var(--t-text)!important}:root[data-theme=light] .mil-skin .mil-breadcrumbs.mil-light li:after{background-color:var(--t-line-strong)!important}:root[data-theme=light] .mil-skin .mil-rows-dark .mil-row-name{color:var(--t-text)!important}:root[data-theme=light] .mil-skin .mil-rows-dark .mil-row-desc{color:var(--t-text-2)!important}.mil-skin .mil-rows-dark .mil-row-num,.mil-skin .mil-rows-dark .mil-row-meta,.mil-skin .mil-rows-dark .mil-row-head,.mil-skin .mil-rows-dark .mil-row-head span{color:#ffffff9e!important}.mil-skin .mil-rows-dark.mil-rows-strong .mil-row-meta{color:var(--t-text)!important}.mil-skin .mil-rows-dark.mil-rows-strong .mil-row-head .mil-row-meta{color:#ffffff9e!important}.mil-skin .mil-rows-dark li{border-bottom-color:#ffffff24!important}.mil-skin .mil-rows-dark .mil-row-head{border-bottom-color:#ffffff52!important}.mil-skin .mil-rows-dark a.mil-row:hover{background-color:#ffffff0d!important}.mil-skin .mil-rows-dark a.mil-row:hover .mil-row-name,.mil-skin .mil-rows-dark a.mil-row:hover .mil-row-meta{color:#7fb2ff!important}.mil-skin .mil-dark-bg .mil-dodecahedron .mil-pentagon>div,.mil-skin .mil-menu-frame .mil-dodecahedron .mil-pentagon>div{border-color:#ffffffd9!important}

/* ===== tu mil-extra.css ===== */
:where(.mil-skin) a:focus-visible,:where(.mil-skin) button:focus-visible,:where(.mil-skin) input:focus-visible,:where(.mil-skin) textarea:focus-visible,:where(.mil-skin) select:focus-visible,:where(.mil-skin) summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--t-accent)!important;outline-offset:3px!important}.mil-menu-frame a:focus-visible,.mil-menu-frame button:focus-visible,.mil-dark-bg a:focus-visible,.mil-dark-bg button:focus-visible,.mil-dark-bg input:focus-visible{outline-color:var(--t-on-accent)!important}.mil-menu-btn{-webkit-appearance:none;appearance:none;color:inherit;font:inherit;background:0 0;border:0;margin:0;padding:0;line-height:0}.mil-dodecahedron{will-change:transform}.mil-menu-frame{will-change:opacity}@media (prefers-reduced-motion: reduce) and (update: none){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;transition-delay:0s!important;animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.mil-up{opacity:1!important;transform:none!important}.mil-dodecahedron,.mil-menu-frame{will-change:auto}}.mil-process-item{position:relative}.mil-process-item h6{margin:0 0 6px}.mil-process-item p{margin:0;font-size:13px;line-height:1.5}.mil-banner-content .mil-button{border:1px solid var(--t-line-strong);color:var(--t-text);background-color:#0000;transition:border-color .3s,background-color .3s}.mil-banner-content .mil-button .mil-arrow{background-color:var(--t-line);transition:background-color .3s}.mil-banner-content .mil-button .mil-arrow path{fill:var(--t-text)}.mil-banner-content .mil-button:hover{background-color:#ff98001f;border-color:#ff9800e6}.mil-banner-content .mil-button:hover .mil-arrow{background-color:var(--t-accent)}.mil-banner-content .mil-button:hover .mil-arrow path{fill:var(--t-on-accent)}:where(.mil-skin) h1:not(.mil-h4):not(.mil-h5):not(.mil-h6),:where(.mil-skin) h2:not(.mil-h4):not(.mil-h5):not(.mil-h6),:where(.mil-skin) h3:not(.mil-h4):not(.mil-h5):not(.mil-h6),:where(.mil-skin) .mil-h1{letter-spacing:-.4px;font-weight:400}.mil-qa{border-bottom:1px solid #ffffff23}.mil-qa:first-of-type{border-top:1px solid #ffffff23}.mil-qa>summary{cursor:pointer;color:#ffffffe6;justify-content:space-between;align-items:baseline;gap:24px;padding:22px 4px;font-size:17px;line-height:1.45;list-style:none;display:flex}.mil-qa>summary::-webkit-details-marker{display:none}.mil-qa>summary:after{content:"+";color:#ffffffb3;flex:none;font-size:20px;line-height:1}.mil-qa[open]>summary{color:var(--t-accent-text)}.mil-qa[open]>summary:after{content:"-";color:var(--t-accent-text)}.mil-qa-a{color:#ffffffb3;max-width:76ch;margin:0;padding:0 4px 26px;font-size:15px;line-height:1.7}.mil-prose{max-width:34em}.mil-prose>*{margin:0}.mil-prose>*+*{margin-top:26px}.mil-prose p{color:#ffffffc7;font-size:17px;line-height:1.75}.mil-prose h2{color:#ffffffeb;margin-top:70px;font-size:30px;line-height:1.25}.mil-prose h3{color:#ffffffeb;margin-top:48px;font-size:21px;line-height:1.3}.mil-prose h2+p,.mil-prose h3+p{margin-top:18px}.mil-prose ul,.mil-prose ol{padding-left:22px}.mil-prose li{color:#ffffffc7;margin-bottom:10px;font-size:17px;line-height:1.7}.mil-prose ul{padding-left:0;list-style:none}.mil-prose ul>li{padding-left:22px;position:relative}.mil-prose ul>li:before{content:"";background:var(--t-accent);width:8px;height:1px;position:absolute;top:.8em;left:0}.mil-prose blockquote{border-left:2px solid #ff980073;margin:0;padding:4px 0 4px 22px}.mil-prose blockquote p{color:#ffffffc7;font-size:19px;line-height:1.6}.mil-prose blockquote footer{letter-spacing:1px;text-transform:uppercase;color:#ffffffb3;margin-top:10px;font-size:12px}.mil-prose pre{background:var(--t-surface);padding:22px 24px;overflow-x:auto}.mil-prose pre code{color:var(--t-text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.65}.mil-filter{flex-wrap:wrap;gap:10px;margin-bottom:50px;display:flex}.mil-filter button{appearance:none;cursor:pointer;font:inherit;letter-spacing:.3px;color:#ffffffb3;background:0 0;border:1px solid #ffffff31;padding:9px 16px;font-size:13px}.mil-filter button:hover{border-color:#ff980080}.mil-filter button[aria-pressed=true]{border-color:var(--t-accent);color:var(--t-accent-text)}.mil-foot-note{color:#ffffffb3;max-width:40em;margin:50px 0 0;font-size:13px;line-height:1.7}.mil-foot-note a{color:#ffffffb3}.mil-skin.mil-skin.mil-skin.mil-skin section h2:not(#zzz-khong-ton-tai):not(.tc-goc h2):not(.mil-h1):not(.mil-h2):not(.mil-h3):not(.mil-h4):not(.mil-h5):not(.mil-h6),.mil-skin.mil-skin.mil-skin.mil-skin h2:not(#zzz-khong-ton-tai):not(.tc-goc h2):not(.mil-h1):not(.mil-h2):not(.mil-h3):not(.mil-h4):not(.mil-h5):not(.mil-h6){letter-spacing:-.5px!important;font-size:clamp(32px,3.6vw,54px)!important;font-style:normal!important;font-weight:400!important;line-height:1.2!important}.mil-skin.mil-skin.mil-skin.mil-skin section h2.mil-suptitle,.mil-skin h2.mil-suptitle{font-size:16px!important;font-weight:300!important;line-height:24px!important}.mil-skin h3:not(.mil-h4):not(.mil-h5):not(.mil-h6){font-weight:400!important}.mil-skin .mil-menu-list li{margin-bottom:7px}.mil-skin .mil-menu-list li a{font-size:14px;line-height:1.45}.mil-skin .mil-cta .container{padding-block:120px}.mil-skin .mil-cta-inner{max-width:760px}.mil-skin .mil-cta-inner h2{margin:0 0 18px}.mil-skin .mil-cta-sub{max-width:52ch;margin:0 0 40px;font-size:15px;line-height:1.65}.mil-skin .mil-cta-actions{flex-wrap:wrap;align-items:center;gap:34px;display:flex}.mil-skin .mil-cta .mil-button{border:1px solid var(--t-line-strong);color:var(--t-text);background-color:#0000;transition:border-color .3s,background-color .3s}.mil-skin .mil-cta .mil-button .mil-arrow{background-color:var(--t-line)}.mil-skin .mil-cta .mil-button .mil-arrow path{fill:var(--t-text)}.mil-skin .mil-cta .mil-button:hover{background-color:#ff98001f;border-color:#ff9800e6}.mil-skin .mil-cta .mil-button:hover .mil-arrow{background-color:var(--t-accent)}.mil-skin .mil-cta .mil-button:hover .mil-arrow path{fill:var(--t-on-accent)}.mil-skin~.fab-stack .fab,.fab-stack .fab{backdrop-filter:blur(8px);border:1px solid var(--t-line)!important;box-shadow:none!important;background:#0a0a0ceb!important}.fab-stack .fab:hover{border-color:var(--t-muted)!important}.fab-stack .fab-ring{display:none!important}.fab-stack .fab svg,.fab-stack .fab-inner{color:var(--t-text)!important}.mil-skin h1,.mil-skin h2,.mil-skin h3,.mil-skin h4,.mil-skin h5,.mil-skin h6{text-wrap:balance}.mil-skin p,.mil-skin li,.mil-skin dd,.mil-skin figcaption,.mil-skin blockquote{text-wrap:pretty}.mil-skin .mil-rows,.ah-modal .ah-modal-reason,.ah-modal .ah-modal-input{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.mil-skin .mil-button:active,.mil-skin .mil-link:active,.ah-modal .ah-modal-cta:active,.ah-modal .ah-modal-reason:active,.fab-stack .fab:active{transform:translateY(1px)}.mil-skin .mil-button,.ah-modal .ah-modal-cta,.fab-stack .fab{transition:transform .12s,border-color .3s,background-color .3s}.mil-skin:after{content:"";z-index:1;pointer-events:none;opacity:.025;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjAiIGhlaWdodD0iMTYwIj48ZmlsdGVyIGlkPSJuIj48ZmVUdXJidWxlbmNlIHR5cGU9ImZyYWN0YWxOb2lzZSIgYmFzZUZyZXF1ZW5jeT0iLjgiIG51bU9jdGF2ZXM9IjMiLz48L2ZpbHRlcj48cmVjdCB3aWR0aD0iMTYwIiBoZWlnaHQ9IjE2MCIgZmlsdGVyPSJ1cmwoI24pIi8+PC9zdmc+);position:fixed;inset:0}@media (prefers-reduced-motion: reduce) and (update: none){.mil-skin:after{opacity:.015}}.mil-skin .mil-banner-content .mil-link.mil-accent{transition:color .3s;color:var(--t-text-2)!important}.mil-skin .mil-banner-content .mil-link.mil-accent:hover{color:var(--t-on-accent)!important}.mil-skin .mil-banner-content .mil-link.mil-accent .mil-arrow path{fill:var(--t-text-2)}.mil-skin .mil-banner-content .mil-link.mil-accent:hover .mil-arrow{background-color:#ff9800e6!important}.fab-stack .fab{border-radius:50%!important;width:52px!important;height:52px!important}.fab-stack .fab-inner svg{width:20px;height:20px}.mil-skin .mil-step-num{letter-spacing:-.5px;margin:0 0 10px;font-size:clamp(32px,3.6vw,54px);font-weight:400;line-height:1.2;display:block}@media (width<=768px){:where(.mil-skin) h1 br,:where(.mil-skin) h2 br,:where(.mil-skin) h3 br,:where(.mil-skin) h4 br,:where(.mil-skin) h5 br,:where(.mil-skin) h6 br{display:inline!important}}.mil-skin .mil-menu-list li a{color:var(--t-text-2)!important}.mil-skin .mil-menu-list li a:hover{color:var(--t-on-accent)!important}@media (width<=768px){.mil-skin .mil-menu-list li a{padding:11px 0;display:inline-block}.mil-skin .mil-menu-list li{margin-bottom:0}}.mil-skin .mil-menu-frame a{color:var(--t-text-2)}.mil-skin .mil-menu-frame a:hover{color:var(--t-on-accent)}.mil-skin .mil-menu-colh{letter-spacing:1.6px;text-transform:uppercase;font-size:12px;font-weight:400;line-height:1.4}.mil-skin .mil-with-rail{grid-template-columns:264px minmax(0,1fr);align-items:start;gap:56px;display:grid}.mil-skin .mil-rail{overscroll-behavior:contain;border-right:1px solid var(--t-line-soft);max-height:calc(100dvh - 150px);padding-right:8px;position:sticky;top:116px;overflow-y:auto}.mil-skin .mil-rail-inner{padding-bottom:20px}.mil-skin .mil-rail-all{letter-spacing:1.6px;text-transform:uppercase;color:var(--t-faint);border-bottom:1px solid var(--t-line-soft);margin-bottom:18px;padding-bottom:14px;font-size:11px;display:block}.mil-skin .mil-rail-group+.mil-rail-group{margin-top:26px}.mil-skin .mil-rail-group-t{letter-spacing:1.6px;text-transform:uppercase;color:var(--t-faint);margin:0 0 10px;font-size:11px}.mil-skin .mil-rail-list{margin:0;padding:0;list-style:none}.mil-skin .mil-rail-link{color:var(--t-muted);border-left:1px solid #ffffff00;margin-left:-12px;padding:7px 0 7px 12px;font-size:13.5px;line-height:1.45;transition:color .2s,border-color .2s;display:block}.mil-skin .mil-rail-meta{letter-spacing:.6px;color:var(--t-faint);margin-top:2px;font-size:11px;display:block}@media (width<=1100px){.mil-skin .mil-with-rail{grid-template-columns:1fr;gap:0}.mil-skin .mil-rail{display:none}}.mil-skin .mil-rail{border-right-color:#ffffff23}.mil-skin .mil-rail-all{color:#ffffffb3;border-bottom-color:#ffffff23}.mil-skin .mil-rail-all:hover,.mil-skin .mil-rail-all.is-on{color:#ffffffe0}.mil-skin .mil-rail-group-t{color:#ffffffb3}.mil-skin .mil-rail-link{color:#ffffffb3}.mil-skin .mil-rail-link:hover{color:#ffffffe0;border-left-color:#ffffff3e}.mil-skin .mil-rail-link.is-on{color:#f3f3f4;border-left-color:#ff9800}.mil-skin .mil-rail-meta{color:#ffffffb3}.mil-skin .mil-dark-bg .mil-rail{border-right-color:var(--t-line)}.mil-skin .mil-dark-bg .mil-rail-all{color:var(--t-muted);border-bottom-color:var(--t-line)}.mil-skin .mil-dark-bg .mil-rail-all:hover,.mil-skin .mil-dark-bg .mil-rail-all.is-on{color:var(--t-text)}.mil-skin .mil-dark-bg .mil-rail-group-t{color:var(--t-muted)}.mil-skin .mil-dark-bg .mil-rail-link{color:var(--t-text-2)}.mil-skin .mil-dark-bg .mil-rail-link:hover{color:var(--t-on-accent);border-left-color:var(--t-faint)}.mil-skin .mil-dark-bg .mil-rail-link.is-on{color:var(--t-on-accent);border-left-color:var(--t-accent)}.mil-skin .mil-dark-bg .mil-rail-meta{color:var(--t-muted)}.mil-skin .mil-prose,.mil-skin .mil-prose p,.mil-skin .mil-prose li{color:#ffffffb8}.mil-skin .mil-rail{overscroll-behavior:contain;width:264px;max-height:calc(100dvh - 150px);transition:opacity .18s;position:fixed;top:116px;left:max(30px,50vw - 570px);overflow-y:auto}.mil-skin .mil-rail.is-off{opacity:0;pointer-events:none}.mil-skin .mil-with-rail>:not(.mil-rail){grid-column:2}@media (width<=1100px){.mil-skin .mil-with-rail>:not(.mil-rail){grid-column:1}}.mil-kbd-hint{letter-spacing:.02em;color:var(--t-faint);border:1px solid var(--t-line);white-space:nowrap;pointer-events:none;user-select:none;border-radius:2px;align-items:center;margin-left:2px;padding:4px 6px;font-size:11px;font-weight:500;line-height:1;display:none}@media (width>=992px){.mil-kbd-hint{display:inline-flex}}.mil-skin .mil-rows-dark .mil-row-name{color:var(--t-text)}.mil-skin .mil-rows-dark .mil-row-desc{color:var(--t-text-2)}.mil-skin .mil-rows-dark .mil-row-meta{color:var(--t-muted)}.mil-skin .mil-rows-dark.mil-rows-strong .mil-row-head .mil-row-meta,.mil-skin .mil-rows-dark .mil-row-num{color:var(--t-muted)}.mil-skin .mil-rows-dark .mil-row-head{color:var(--t-muted);border-color:var(--t-line-strong)}.mil-skin .mil-rows-dark li{border-color:var(--t-line)}.mil-skin .mil-rows-dark a.mil-row:hover .mil-row-name,.mil-skin .mil-rows-dark a.mil-row:hover .mil-row-meta{color:var(--t-accent-text)}.mil-skin .mil-rows .mil-row-num,.mil-skin .mil-rows .mil-row-meta,.mil-skin .mil-rows .mil-row-head{color:#ffffffb3}.mil-skin .mil-rows.mil-rows-strong .mil-row-meta{color:#ffffffe0}.mil-skin .mil-rows.mil-rows-strong .mil-row-head .mil-row-meta{color:#ffffffb3}.mil-skin .mil-qa>summary:after{color:#ffffffb3}.mil-skin .mil-breadcrumbs li:last-child a{opacity:1}:root[data-theme=light] .mil-skin .mil-breadcrumbs.mil-light li:last-child a,:root[data-theme=light] .mil-skin .mil-breadcrumbs li:last-child a{color:var(--t-muted)!important}:root[data-theme=dark] .mil-skin .mil-breadcrumbs li:last-child a{color:var(--t-text-2)}:root[data-theme=dark] .mil-skin .mil-dark-bg .mi-invert-fix{--color-ink:var(--t-text);--color-ink-soft:var(--t-text-2);--color-ink-mute:var(--t-text-2)}:root[data-theme=dark] .mil-skin .mil-dark-bg .mi-invert-fix .mil-light-soft,:root[data-theme=dark] .mil-skin .mil-dark-bg .mi-invert-fix .mil-cta-sub{color:var(--t-text-2)}:root[data-theme=dark] .mil-skin .mil-dark-bg .mi-invert-fix h1,:root[data-theme=dark] .mil-skin .mil-dark-bg .mi-invert-fix h2,:root[data-theme=dark] .mil-skin .mil-dark-bg .mi-invert-fix h3,:root[data-theme=dark] .mil-skin .mil-dark-bg .mi-invert-fix h4,:root[data-theme=dark] .mil-skin .mil-dark-bg .mi-invert-fix h5,:root[data-theme=dark] .mil-skin .mil-dark-bg .mi-invert-fix h6{color:var(--t-text)}.mil-skin .mil-rows:not(.mil-rows-dark) .mil-row-num,.mil-skin .mil-rows:not(.mil-rows-dark) .mil-row-meta,.mil-skin .mil-rows:not(.mil-rows-dark) .mil-row-head{color:#ffffffb3}.mil-skin .mil-rows:not(.mil-rows-dark).mil-rows-strong .mil-row-meta{color:#ffffffe0}.mil-skin .mil-rows:not(.mil-rows-dark).mil-rows-strong .mil-row-head .mil-row-meta{color:#ffffffb3}.mil-skin .mil-rows-dark .mil-row-num,.mil-skin .mil-rows-dark .mil-row-meta,.mil-skin .mil-rows-dark .mil-row-head{color:var(--t-muted)}.mil-skin .mil-rows-dark.mil-rows-strong .mil-row-meta{color:var(--t-text)}.mil-skin .mil-rows-dark.mil-rows-strong .mil-row-head .mil-row-meta{color:var(--t-muted)}:root[data-theme=light] .mil-skin .mil-a11y .mil-rows-dark .mil-row-meta,:root[data-theme=light] .mil-skin .mil-a11y .mil-dark-bg .mil-row-meta,:root[data-theme=light] .mil-skin .mil-a11y .mil-cta-sub{color:var(--t-muted)!important}.mil-skin .mil-kbd-hint{color:#ffffffa8;border-color:#ffffff47}.mil-skin .mil-menu-frame .mil-light-soft,.mil-skin .mil-menu-frame .mil-menu-colh,.mil-skin .mil-menu-frame p,.mil-skin .mil-menu-frame li,.mil-skin .mil-menu-frame address{color:var(--t-text-2)!important}.mil-skin .mil-menu-frame h1,.mil-skin .mil-menu-frame h2,.mil-skin .mil-menu-frame h3,.mil-skin .mil-menu-frame h4{color:var(--t-text)!important}:root[data-theme] .mil-skin .mil-menu-frame .mil-light-soft,:root[data-theme] .mil-skin .mil-menu-frame .mil-menu-colh,:root[data-theme] .mil-skin .mil-menu-frame p,:root[data-theme] .mil-skin .mil-menu-frame li,:root[data-theme] .mil-skin .mil-menu-frame address{color:var(--t-text-2)!important}:root[data-theme] .mil-skin .mil-menu-frame h1,:root[data-theme] .mil-skin .mil-menu-frame h2,:root[data-theme] .mil-skin .mil-menu-frame h3,:root[data-theme] .mil-skin .mil-menu-frame h4{color:var(--t-text)!important}:root[data-theme] .mil-skin #services .mil-service-list li{color:var(--t-text-2)!important;border-bottom-color:var(--t-line)!important}:root[data-theme] .mil-skin #services .mil-service-list li:first-child{border-top-color:var(--t-line)!important}.mil-skin details.mil-accordion-group>summary::-webkit-details-marker{display:none}.mil-skin .mil-button{color:var(--t-on-accent)}:root[data-theme] .mil-skin .mil-banner-content .mil-button{background-color:var(--t-accent)!important;color:var(--t-on-accent)!important;border-color:#0000!important}:root[data-theme] .mil-skin .mil-banner-content .mil-button .mil-arrow{background-color:var(--t-line-strong)!important}:root[data-theme] .mil-skin .mil-banner-content .mil-button .mil-arrow path{fill:var(--t-on-accent)!important}.mil-skin .mil-animation-frame .mil-animation{--mil-scale-max:2}@media screen and (width<=992px){.mil-skin .mil-animation-frame .mil-animation{--mil-scale-max:1.15}}.mil-skin .ah-geo{pointer-events:none;background-color:#131417;border:1px solid #ffffff1f;position:absolute;inset:0;overflow:hidden}.mil-skin .ah-geo .ah-geo-block{place-items:center;display:grid;position:absolute;inset:0;transform:scale(1.15)}.mil-skin .ah-geo .mil-dodecahedron{top:0;left:0}.mil-skin .ah-geo .mil-pentagon>div{border-top:1px solid #ffffff75}.mil-skin .ah-geo .mil-dodecahedron .mil-pentagon>div{border-top-color:#ffffff75}@media (prefers-reduced-motion: reduce) and (update: none){.mil-skin .ah-geo .mil-dodecahedron{animation:none}}.mil-skin footer a.mil-light-soft{position:relative}.mil-skin footer a.mil-light-soft:after{content:"";height:24px;position:absolute;top:50%;left:0;right:0;translate:0 -50%}.mil-skin .mil-menu-btn{position:relative}.mil-skin .mil-menu-btn:after{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;translate:-50% -50%}.mil-skin footer a.social-icon,.mil-skin .mil-frame-act{position:relative}.mil-skin footer a.social-icon:after,.mil-skin .mil-frame-act:after{content:"";width:24px;height:24px;position:absolute;top:50%;left:50%;translate:-50% -50%}.mil-skin .mil-banner-act{flex-wrap:wrap;align-items:center;gap:18px 34px;display:flex}.ah-in-nhan-dang{display:none}.mil-skin .mil-service-card-sm p{opacity:1;transform:none}@media (hover:hover) and (pointer:fine){.mil-skin .mil-dodecahedron,.mil-skin .mil-dodecahedron .mil-pentagon,.mil-skin .mil-dodecahedron .mil-pentagon>div{pointer-events:auto}.mil-skin .ah-geo .mil-dodecahedron,.mil-skin .ah-geo .mil-pentagon,.mil-skin .ah-geo .mil-pentagon>div,.mil-skin .ah-geo .mil-pentagon>div{pointer-events:none}}@media (hover:hover) and (pointer:fine){.mil-skin .mil-dodecahedron .mil-pentagon>div{transition:transform .56s linear(0, .0249, .0853, .1648, .2523, .3408, .4258, .5047, .5762, .6398, .6957, .7442, .7859, .8215, .8516, .8771, .8985, .9163, .9312, .9435, .9537, .9622, .9691, .9748, .9795, .9833, .9865, .989, .9911, .9928, .9942, .9953, 1)}.mil-skin .mil-dodecahedron:has(.mil-pentagon>div:hover) .mil-pentagon>div,.mil-skin .mil-dodecahedron:hover .mil-pentagon>div{transition:transform 1.61s linear(0, .0346, .1264, .2576, .4112, .5725, .7291, .8716, .9934, 1.0905, 1.1617, 1.2074, 1.2299, 1.2325, 1.2191, 1.1938, 1.1608, 1.1239, 1.0863, 1.0507, 1.019, .9926, .9721, .9577, .949, .9456, .9464, .9507, .9574, .9655, .9743, .983, .991, .998, 1.0036, 1.0079, 1.0108, 1.0123, 1.0128, 1.0122, 1.011, 1.0093, 1.0073, 1.0053, 1.0033, 1.0015, 1, .9987, 1)}.mil-skin .mil-dodecahedron:has(.mil-pentagon>div:hover) .mil-pentagon:first-child>div,.mil-skin .mil-dodecahedron:hover .mil-pentagon:first-child>div{transition-delay:33ms}.mil-skin .mil-dodecahedron:has(.mil-pentagon>div:hover) .mil-pentagon:nth-child(2)>div,.mil-skin .mil-dodecahedron:hover .mil-pentagon:nth-child(2)>div{transition-delay:40ms}.mil-skin .mil-dodecahedron:has(.mil-pentagon>div:hover) .mil-pentagon:nth-child(3)>div,.mil-skin .mil-dodecahedron:hover .mil-pentagon:nth-child(3)>div{transition-delay:47ms}.mil-skin .mil-dodecahedron:has(.mil-pentagon>div:hover) .mil-pentagon:nth-child(4)>div,.mil-skin .mil-dodecahedron:hover .mil-pentagon:nth-child(4)>div{transition-delay:54ms}.mil-skin .mil-dodecahedron:has(.mil-pentagon>div:hover) .mil-pentagon:nth-child(5)>div,.mil-skin .mil-dodecahedron:hover .mil-pentagon:nth-child(5)>div{transition-delay:61ms}.mil-skin .mil-dodecahedron:has(.mil-pentagon>div:hover) .mil-pentagon:nth-child(6)>div,.mil-skin .mil-dodecahedron:hover .mil-pentagon:nth-child(6)>div{transition-delay:33ms}.mil-skin .mil-dodecahedron:has(.mil-pentagon>div:hover) .mil-pentagon:nth-child(7)>div,.mil-skin .mil-dodecahedron:hover .mil-pentagon:nth-child(7)>div{transition-delay:40ms}.mil-skin .mil-dodecahedron:has(.mil-pentagon>div:hover) .mil-pentagon:nth-child(8)>div,.mil-skin .mil-dodecahedron:hover .mil-pentagon:nth-child(8)>div{transition-delay:47ms}.mil-skin .mil-dodecahedron:has(.mil-pentagon>div:hover) .mil-pentagon:nth-child(9)>div,.mil-skin .mil-dodecahedron:hover .mil-pentagon:nth-child(9)>div{transition-delay:54ms}.mil-skin .mil-dodecahedron:has(.mil-pentagon>div:hover) .mil-pentagon:nth-child(10)>div,.mil-skin .mil-dodecahedron:hover .mil-pentagon:nth-child(10)>div{transition-delay:61ms}.mil-skin .mil-dodecahedron:has(.mil-pentagon>div:hover) .mil-pentagon:nth-child(11)>div,.mil-skin .mil-dodecahedron:hover .mil-pentagon:nth-child(11)>div,.mil-skin .mil-dodecahedron:has(.mil-pentagon>div:hover) .mil-pentagon:nth-child(12)>div,.mil-skin .mil-dodecahedron:hover .mil-pentagon:nth-child(12)>div{transition-delay:0s}.mil-skin .mil-dodecahedron:has(.mil-pentagon>div:hover) .mil-pentagon>div:first-child,.mil-skin .mil-dodecahedron:hover .mil-pentagon>div:first-child{transform:rotate(74.6deg)translateY(-13px)}.mil-skin .mil-dodecahedron:has(.mil-pentagon>div:hover) .mil-pentagon>div:nth-child(2),.mil-skin .mil-dodecahedron:hover .mil-pentagon>div:nth-child(2){transform:rotate(146.6deg)translateY(-13px)}.mil-skin .mil-dodecahedron:has(.mil-pentagon>div:hover) .mil-pentagon>div:nth-child(3),.mil-skin .mil-dodecahedron:hover .mil-pentagon>div:nth-child(3){transform:rotate(218.6deg)translateY(-13px)}.mil-skin .mil-dodecahedron:has(.mil-pentagon>div:hover) .mil-pentagon>div:nth-child(4),.mil-skin .mil-dodecahedron:hover .mil-pentagon>div:nth-child(4){transform:rotate(290.6deg)translateY(-13px)}.mil-skin .mil-dodecahedron:has(.mil-pentagon>div:hover) .mil-pentagon>div:nth-child(5),.mil-skin .mil-dodecahedron:hover .mil-pentagon>div:nth-child(5){transform:rotate(362.6deg)translateY(-13px)}}
.mil-process-item h3{margin:0 0 6px}

/* ah-appwin: khung cua so ung dung thu nho, xem giai thich day du o
   src/app/_mil/AppWinMini.tsx.

   VE BANG NET MANH TRANG TREN NEN TRONG SUOT, khong panel dac. Ban dau ve
   kieu "skeleton" (nen trang duc + cac khoi xam dac) va CEO bac ngay:
   trong gia, khong giong style dang co. Dung: moi hoa tiet khac trong khoi
   toi nay (khoi da dien .mil-pentagon div) deu la `border-top:1px solid
   #fff` tren nen trong suot, nen mot mang trang duc nam giua se lac long.
   Nay dung cung mot ngon ngu: chi net 1px mau trang o cac muc do mo khac
   nhau, khong to mang, khong bo tron nhieu.

   Vi nam trong .mi-invert-fix nen mau render dung nhu khai bao (khong bi
   lop backdrop-filter:invert() cua .mil-dark-bg dao lai). */
.ah-appwin{border:1px solid #ffffff54;border-radius:6px;position:absolute;inset:0;display:block}
.ah-appwin-bar{border-bottom:1px solid #ffffff33;align-items:center;gap:5px;height:16px;padding:0 8px;display:flex;position:absolute;top:0;left:0;right:0}
.ah-appwin-dot{border:1px solid #ffffff5c;border-radius:50%;width:4px;height:4px;display:block}
.ah-appwin-side{border-right:1px solid #ffffff33;flex-direction:column;gap:8px;width:46px;padding:12px 9px 0;display:flex;position:absolute;top:16px;bottom:0;left:0}
.ah-appwin-nav{border-top:1px solid #ffffff40;display:block}
.ah-appwin-nav.is-on{border-top-color:#ffffff9e;width:70%}
.ah-appwin-main{flex-direction:column;gap:9px;padding:12px 11px 0;display:flex;position:absolute;top:16px;bottom:0;left:46px;right:0}
.ah-appwin-card{border:1px solid #ffffff40;border-radius:2px;height:20px;display:block}
.ah-appwin-row{border-top:1px solid #ffffff40;display:block}
.ah-appwin-row.is-short{width:58%}

/* Icon dai quy trinh, xem src/app/_mil/ProcessIcon.tsx. Thay cho gach ngang
   20x1px cu: bon muc deu chung mot vach nen khong phan biet duoc gi.
   Mau lay var(--t-accent) y het vach cu de khong doi bang mau cua trang. */
/* BO CUC MOI (23/08/2026, vong 3). Hai ban truoc deu bi che dung: icon nho,
   lech, roi rac. Van de that khong nam o kich thuoc ma o CHO: bon icon dung
   roi nhau chi la bon o doc lap, trong khi day la mot QUY TRINH co thu tu.
   Nay dat moi icon vao mot moc tron va noi cac moc bang mot duong lien, doc
   ra thanh mot mach chay tu Khao sat toi Ban giao. Moc tron cung lam icon co
   khung neo nen khong con troi lo lung, va can duoc chinh giua bang
   place-items thay vi de mac SVG tu can. */
.mil-skin .mil-process-icon{color:var(--t-accent-text);border:1px solid #ff980052;border-radius:50%;place-items:center;width:56px;height:56px;margin-bottom:24px;display:grid}
.mil-skin .mil-process-icon svg{width:26px;height:26px;display:block}
/* Duong noi hai moc lien nhau: keo tu mep phai moc hien tai sang mep trai moc
   ke tiep (khe luoi 30px). Muc cuoi khong ve. */
.mil-skin .mil-process-item:after{content:"";background:#ff980033;height:1px;position:absolute;top:28px;left:66px;right:-30px}
.mil-skin .mil-process-item:last-child:after{display:none}
/* Duoi 992px luoi con 2 cot roi 1 cot, cac moc khong con nam tren mot hang
   nen duong noi se chay lung tung: bo han. */
@media screen and (width<=992px){.mil-skin .mil-process-item:after{display:none}}
@media screen and (width<=560px){.mil-skin .mil-process-icon{margin-bottom:12px}}

/* Hang tieu de muc Services: anh - tieu de - nut tren cung mot hang, neo anh
   len dong dau va nut xuong dong cuoi, dung nhu ban goc Ashley. Xem giai
   thich day du trong src/app/page.tsx cho khoi .ah-services-row. */

/* Mui ten trong nut o khoi nen TOI: style.css co luat .mil-button svg
   path{fill:<mau nhan>}. Hoi mau nhan la xanh thi mui ten xanh nam tren vong
   tron trang mo 10% nen van doc duoc; doi sang cam thi thanh cam tren nen cam,
   mat hut. Ep ve mau chu-tren-nen-nhan (toi) cho giong nut o hero. */
.mil-skin .mil-dark-bg .mi-invert-fix .mil-button .mil-arrow path{fill:var(--t-on-accent)!important}

/* Chan trang gon lai 23/08/2026, xem giai thich trong src/app/SiteFooter.tsx.
   Dem 120px tren/60px duoi cua template qua rong cho mot chan trang chi con
   hai hang, ha xuong 80/40. */
.mil-skin .ah-chan{padding:80px 30px 40px}
.mil-skin .ah-chan-dia-chi{margin-bottom:22px;font-size:14px;line-height:1.6}
.mil-skin .ah-chan-mxh{gap:14px}
.mil-skin .ah-chan-day{border-top:1px solid #ffffff1f;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:26px;display:flex}
.mil-skin .ah-chan-phap-ly{flex-wrap:wrap;gap:26px;margin:0;display:flex}
.mil-skin .ah-chan-phap-ly li{margin:0}
.mil-skin .ah-chan-ban-quyen{margin:0;font-size:13px}
@media screen and (width<=768px){.mil-skin .ah-chan{padding:60px 30px 32px}.mil-skin .ah-chan-day{flex-direction:column;align-items:flex-start;gap:14px}}

/* Mo/dong cau hoi cho muot (CEO 23/08/2026: bam vao bi khung).
   The <details> von dong mo TUC THI, khong co gi de chuyen dong.

   Cach lam: bat interpolate-size de trinh duyet noi suy duoc tu 0 sang auto
   (khong bat thi transition toi tu khoa auto bi bo qua), roi chuyen dong
   chieu cao cua ::details-content. Khong dung JS, khong dung meo max-height
   (meo do phai doan truoc chieu cao, doan hut la cat mat chu hoac gian giat).

   ::details-content va interpolate-size hien chi co tren Chrome/Edge. Cac
   trinh duyet khac se dong mo tuc thi y nhu hien nay, tuc KHONG kem di, nen
   dung truc tiep khong can du phong.

   Giam chuyen dong: luat toan cuc do nay nam trong nhanh
   @media (prefers-reduced-motion: reduce) and (update: none) - tuc KHONG BAO GIO
   dung tren man hinh. CEO chot 16/09/2026: site luon co chuyen dong, xem
   globals.css muc "LUON CO CHUYEN DONG".

   Dau cong: KHONG doi ky tu "+" thanh "-" nua vi doi noi dung thi khong the
   chuyen dong. Giu nguyen "+" roi xoay 45 do thanh dau nhan, xoay thi muot. */
:root{interpolate-size:allow-keywords}
.mil-skin details.mil-qa::details-content{block-size:0;overflow:hidden;transition:block-size .34s cubic-bezier(.4,0,.2,1),content-visibility .34s allow-discrete}
.mil-skin details.mil-qa[open]::details-content{block-size:auto}
.mil-skin .mil-qa>summary{transition:color .2s}
.mil-skin .mil-qa>summary:after{transition:transform .34s cubic-bezier(.4,0,.2,1),color .2s}
.mil-skin .mil-qa[open]>summary:after{content:"+";transform:rotate(45deg)}

.mil-skin .ah-chan-lien-he{margin-bottom:22px}

/* ── Dai quy trinh hien dan theo cuon (CEO 23/08/2026) ──
   Y do: bon giai doan phai doc ra la LAN LUOT, khong phai bon o hien cung
   mot luc. Nen buoc hieu ung vao vi tri cuon: cuon toi dau, chang do sang
   len toi do, va duong noi tu ve tu chang truoc sang chang sau.

   Cach lam: mot view-timeline dat tren ca dai (--qt), roi moi chang chay
   cung mot khung hinh nhung o mot doan animation-range LECH NHAU. Khong
   dung JS, khong dung IntersectionObserver: trinh duyet tu tinh theo vi tri
   cuon nen keo lui keo toi deu dung, khong bi ket trang thai.

   Chi dong opacity va transform (hai thu chay tren luong ket hop cua trinh
   duyet), khong dong width/height de khoi giat.

   AN TOAN NOI DUNG: toan bo trang thai AN nam trong @supports. Trinh duyet
   chua ho tro scroll-driven animation (hien la Firefox) khong vao khoi nay
   nen thay day du bon chang ngay tu dau, tuc khong mat chu. Day la hieu ung
   trang tri nen khong lam ban du phong bang JS.

   Giam chuyen dong: khong con gate nua (CEO chot 16/09/2026, xem globals.css). */
@keyframes ah-qt-hien{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes ah-qt-moc{from{opacity:0;transform:scale(.72)}to{opacity:1;transform:none}}
@keyframes ah-qt-duong{from{transform:scaleX(0)}to{transform:scaleX(1)}}

@supports ((animation-timeline: view()) and (animation-range: entry)){
@media all{

/* Dung khoang COVER chu khong phai ENTRY. Dai chi cao khoang 330px trong khi
   khung nhin cao 900px, nen khoang `entry` (tinh tu luc mep tren cham day
   khung nhin toi luc vao han) troi qua chi trong 330px cuon: nhanh den muc
   chua kip doc da xong. `cover` tinh ca hanh trinh dai di xuyen qua khung
   nhin nen trai dai hon nhieu, du cho bon chang sang len lan luot. */
.mil-skin .mil-process-item{animation:ah-qt-hien auto linear both;animation-timeline:--qt}
.mil-skin .mil-process-item:nth-child(1){animation-range:cover 8% cover 20%}
.mil-skin .mil-process-item:nth-child(2){animation-range:cover 14% cover 26%}
.mil-skin .mil-process-item:nth-child(3){animation-range:cover 20% cover 32%}
.mil-skin .mil-process-item:nth-child(4){animation-range:cover 26% cover 38%}

/* Moc tron nay len hoi som hon phan chu, cho co nhip hai lop */
.mil-skin .mil-process-icon{animation:ah-qt-moc auto linear both;animation-timeline:--qt}
.mil-skin .mil-process-item:nth-child(1) .mil-process-icon{animation-range:cover 9% cover 18%}
.mil-skin .mil-process-item:nth-child(2) .mil-process-icon{animation-range:cover 15% cover 24%}
.mil-skin .mil-process-item:nth-child(3) .mil-process-icon{animation-range:cover 21% cover 30%}
.mil-skin .mil-process-item:nth-child(4) .mil-process-icon{animation-range:cover 27% cover 36%}

/* Duong noi tu ve tu trai sang phai, bat dau ngay sau khi moc truoc sang */
.mil-skin .mil-process-item:after{transform-origin:0;animation:ah-qt-duong auto linear both;animation-timeline:--qt}
.mil-skin .mil-process-item:nth-child(1):after{animation-range:cover 16% cover 24%}
.mil-skin .mil-process-item:nth-child(2):after{animation-range:cover 22% cover 30%}
.mil-skin .mil-process-item:nth-child(3):after{animation-range:cover 28% cover 36%}
}}

/* Khung ung dung o cot phai cum Services. To hon han ban chen giua dong chu
   nen khong dung lai .mil-text-image. AppWinMini ve bang position:absolute
   inset:0 nen cha chi can co position va chieu cao. */
.mil-skin .ah-win-lon{height:250px;position:relative}
@media screen and (width<=992px){.mil-skin .ah-win-lon{height:190px;margin-top:50px}}

/* Thanh dau trang: co nen VA vuot len tren noi dung khi da cuon.

   NGUYEN NHAN LOI: luat cho thanh dau trang co nen (style.css) nam trong
   @media screen and (width<=1200px), tuc CHI mobile va tablet moi co. Tren
   desktop no trong suot hoan toan (do duoc rgba(0,0,0,0)) nen chu cuon qua
   nam de thang len logo.

   VI SAO KHONG CHI THEM NEN LA XONG: do duoc thu tu lop cua site la
   .mil-dark-bg:before (lop dao mau) z-index 2, noi dung khoi toi
   .mi-invert-fix z-index 3, con .mil-frame chi z-index 2. Tuc tren khoi nen
   TOI, chu van ve de len thanh dau trang du thanh do da co nen. Thu them nen
   khong thoi: khoi sang het de, khoi toi van de nguyen.

   CACH LAM: khi cuon qua 90px thi nang .mil-frame len z-index 40 (noi dung
   cao nhat cua site la 10, con lop cao hon 40 chi co skip-link 9999 va
   logo-intro 100000, nen 40 khong dam vao gi). Doi z-index bang step-end nen
   no nhay dut khoat mot lan, khong co trang thai nua voi.

   HE QUA PHAI CHAP NHAN: len tren lop dao mau thi logo khong con tu doi
   trang/den theo khoi ben duoi nua ma giu mau den co dinh. Dieu do dung, vi
   luc da cuon thanh nay luon co nen trang, den tren trang doc ro o ca khoi
   sang lan khoi toi. Khi CHUA cuon (dang o hero toi) thi z-index van la 2,
   logo van duoc dao thanh trang nhu cu.

   Trinh duyet chua ho tro scroll(): khong vao @supports nen giu nguyen hanh vi
   cu (thanh trong suot). Day la loi nho ve tham my chu khong mat noi dung. */
@media screen and (width>1200px){
@supports (animation-timeline: scroll()){
.mil-frame{animation:ah-thanh-len auto step-end both;animation-timeline:scroll();animation-range:0 90px}
.mil-frame:before{content:"";pointer-events:none;z-index:-1;background-color:#0a0a0bf5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);height:100px;position:absolute;top:0;left:0;right:0;animation:ah-thanh-nen auto linear both;animation-timeline:scroll();animation-range:20px 90px}
}
}
@keyframes ah-thanh-len{from{z-index:2}to{z-index:40}}
@keyframes ah-thanh-nen{from{opacity:0}to{opacity:1}}

/* ══════════════════════════════════════════════════════════════════════════
   TRANG CHU BA KHOI - CEO chot 13/09/2026. Cac lop cua khoi "Nang luc".
   Dat o cuoi mil-extra.css de khong dam vao style.css cua template.

   KHONG BAM VAO MOT GIA TRI MAU nao trong ma cua tep khac: bai hoc luat 25 -
   mot luat CSS bam vao ma mau nam trong inline style cua file khac thi khi
   nguoi kia doi mau, luat nay het khop trong im lang. O day chi dung
   currentColor va bien CSS da co.
   ══════════════════════════════════════════════════════════════════════════ */

/* Cau "bang chung" - nhe hon chu than nhung KHONG nhat hon: phan cap bang co
   chu va do dam, khong bang do nhat (luat 2 - do nhat het cho roi). */
.ah-tru-bang {
  font-size: .94em;
  font-weight: 500;
  border-left: 2px solid currentColor;
  padding-left: 14px;
  opacity: .78;
}

/* ── So do he thong ─────────────────────────────────────────────────────── */
/* Cuon NGANG TRONG O, khong bao gio lam than trang cuon ngang. */
.ah-sodo-o {
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  padding: 4px 0 10px;
}
.ah-sodo {
  display: block;
  width: 100%;
  min-width: 680px;          /* duoi nguong nay thi chu trong o bat dau cham nhau */
  height: auto;
}

/* ── San khau 3D ────────────────────────────────────────────────────────── */
.ah-3d { position: relative; width: 100%; overflow: hidden; border-radius: 8px; }

/* Nen tinh giu cho, CUNG HINH DANG voi canh sap toi. Chi CSS, khong tep nao.
   Khong dung vong quay: vong quay noi "dang cho", nen tinh noi "cho nay se co
   gi do", va thu hai moi la thu nguoi xem can biet. */
.ah-3d-nen {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(60% 55% at 62% 42%, rgb(120 140 170 / .16), transparent 70%),
    radial-gradient(30% 40% at 58% 70%, rgb(90 110 140 / .10), transparent 70%);
}
/* Poster webp cua canh (SanKhau3D prop anhTinh), nam giua nen va canvas. */
.ah-3d-poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ah-3d-khung {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 700ms ease-out;
}
.ah-3d-khung[data-xong="1"] { opacity: 1; }

.ah-3d-loi {
  position: absolute;
  inset: auto 16px 16px 16px;
  margin: 0;
  font-size: .9rem;
  opacity: .72;
}

/* ── Cay hang muc (dau ra that cua may doc hop dong) ────────────────────── */
.ah-cay {
  border: 1px solid currentColor;
  border-radius: 8px;
  padding: 22px 24px;
  /* Vien + mot tong nen nhich len, KHONG dung bong: vien lam viec tach, do
     sang lam viec phan lop (luat 3). */
  background: rgb(127 127 127 / .045);
}
.ah-cay-dau { margin: 0 0 16px; font-size: .98em; }
.ah-cay-chan { margin: 16px 0 0; font-size: .88em; opacity: .68; }

.ah-cay-ds { margin: 0; padding: 0; list-style: none; }
.ah-cay-ds > li + li { margin-top: 14px; }
.ah-cay-muc {
  display: block;
  font-weight: 600;
  margin-bottom: 6px;
}

/* Dau viec xep thanh luoi: mot danh sach doc 14 muc thi tru nay cao gap doi ba
   tru kia va bon tru mat nhip. Luoi tu dong theo be rong. */
.ah-cay-ds ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 6px 18px;
}
.ah-cay-ds ul li {
  position: relative;
  padding-left: 20px;
  font-size: .93em;
  opacity: .86;
  /* Chu dai hon o thi XUONG DONG, khong tran ra ngoai - ca "chu tran khoi the"
     da tra gia o man bao cao. */
  overflow-wrap: anywhere;
}
/* Dau tick: noi ra day la thu CO THE NGHIEM THU, khong phai mot gach dau dong. */
.ah-cay-ds ul li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: .42em;
  width: 9px;
  height: 5px;
  border-left: 1.6px solid currentColor;
  border-bottom: 1.6px solid currentColor;
  transform: rotate(-45deg);
  opacity: .6;
}

.ah-3d-khung spline-viewer { display:block; width:100%; height:100%; }

/* Ai tat chuyen dong thi khong hoa, khong truot. */
@media (prefers-reduced-motion: reduce) and (update: none) {
  .ah-3d-khung { transition: none; }
}

/* ══════════════════════════════════════════════════════════════════════════
   KHUNG NANG LUC GHIM - CEO chot 13/09/2026.
   Cuon doc day track ngang tren may tinh; vuot ngang that tren dien thoai.
   ══════════════════════════════════════════════════════════════════════════ */

.ah-nl { position: relative; }

.ah-nl-ruot {
  position: sticky;
  top: 0;
  /* svh chu khong phai vh: tren iOS Safari, `vh` tinh theo man hinh KHI THANH
     DIA CHI DA AN, nen mot khoi cao 100vh bi thanh do che mat mot khuc ngay
     luc moi mo trang. `svh` la chieu cao NHO NHAT, tuc luon vua. */
  height: 100svh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.ah-nl-dau {
  flex: 0 0 auto;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding: 48px clamp(20px, 5vw, 90px) 16px;
}
.ah-nl-dau h2 { margin: 0; }

/* Chi so the may tren may. Cham + so: cham de liec, so de chac chan. */
.ah-nl-cham {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}
.ah-nl-cham span[aria-hidden] {
  width: 22px;
  height: 2px;
  background: currentColor;
  opacity: .22;
  transition: opacity .35s ease, width .35s ease;
}
.ah-nl-cham span.la-day { opacity: .9; width: 38px; }
.ah-nl-dem {
  margin-left: 10px;
  font-size: .82rem;
  letter-spacing: .06em;
  opacity: .6;
  font-variant-numeric: tabular-nums;   /* so khong nhay ngang khi doi the */
}

/* ── Track ─────────────────────────────────────────────────────────────── */
.ah-nl-track {
  flex: 1 1 auto;
  display: flex;
  min-height: 0;                  /* thieu dong nay thi con khong co cuon duoc */
  will-change: transform;
  /* KHONG co `transition`. Track bam THANG theo vi tri cuon (KhungNangLuc.tsx,
     ham `doc()`), nen mot hieu ung chuyen chi lam no tre lai mot nhip so voi
     tay nguoi dung. Ban truoc dich theo bon nac roi rac + transition 0,55s va
     CEO doc ra ngay: "no dang bi nhay loan len". */
}

.ah-nl-the {
  flex: 0 0 100%;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: center;
  gap: clamp(24px, 4vw, 64px);
  padding: 0 clamp(20px, 5vw, 90px) 56px;
}

.ah-nl-chu { min-width: 0; }
.ah-nl-chu h3 { margin: 0 0 24px; }
/* Chu dai hon o thi XUONG DONG, khong tran ra ngoai the. */
.ah-nl-chu p { overflow-wrap: anywhere; }

.ah-nl-vat {
  min-width: 0;
  height: min(52svh, 520px);
  position: relative;
}
.ah-nl-vat > * { height: 100%; }

/* ── Dien thoai va ai tat chuyen dong: cuon ngang THAT ─────────────────── */
@media (max-width: 991px), (prefers-reduced-motion: reduce) and (update: none) {
  .ah-nl { height: auto !important; }
  .ah-nl-ruot { position: static; height: auto; overflow: visible; }
  .ah-nl-dau { padding: 40px 16px 12px; }

  .ah-nl-track {
    transform: none !important;     /* JS khong dich nua o che do nay */
    transition: none;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    /* CHAN CU CHI QUAY LAI cua trinh duyet an theo khi track cham mep.
       CEO chon giu vuot ngang tren dien thoai (13/09), day la thu chua no. */
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    /* Le trai de ngon tay it khi phai bat dau tu DUNG mep man hinh, noi cu
       chi quay lai cua iOS bat dau. */
    padding-left: 16px;
    gap: 16px;
  }
  .ah-nl-track::-webkit-scrollbar { display: none; }

  .ah-nl-the {
    flex: 0 0 88%;                  /* he mot mep the ke tiep -> noi ra CON NUA */
    scroll-snap-align: center;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    padding: 0 0 32px;
  }
  .ah-nl-vat { height: min(42svh, 360px); }
}

/* Man rat hep: chu truoc, hien vat sau, va hien vat thap hon nua. */
@media (max-width: 480px) {
  .ah-nl-the { flex-basis: 92%; }
  .ah-nl-vat { height: 240px; }
}

/* ── Banner: canh 3D nam DUOI chu ──────────────────────────────────────── */

.ah-banner-3d {
  position: absolute;
  inset: 0 0 0 auto;
  /* Nua phai o man rong: chu o trai, khoi lap phuong o phai - dung bo cuc
     ban mau CEO chon. Man hep thi phu ca be ngang va lui xuong sau chu. */
  width: min(62%, 1100px);
  z-index: 0;
}
.ah-banner-3d .ah-3d { height: 100%; border-radius: 0; }

/* Nut bat canh 3D (CEO 16/09/2026: "anh truoc, bam moi tai 3D").
   Nut MO va NHO: trang chu chi co mot loi keu goi chinh la "Xem ho so nang
   luc"; day la lua chon them nen no khong duoc tranh cho. Nam goc duoi phai
   cua banner, ngay tren vung canh. Trang thai tai nam TREN nut. */
.ah-banner-3d-nut {
  position: absolute;
  right: clamp(16px, 4vw, 60px);
  bottom: clamp(16px, 3vw, 40px);
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 16px;
  border: 1px solid rgb(255 255 255 / .28);
  border-radius: 999px;
  background: rgb(255 255 255 / .06);
  color: rgb(255 255 255 / .82);
  font-size: 13px;
  letter-spacing: .02em;
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.ah-banner-3d-nut:hover { background: rgb(255 255 255 / .12); border-color: rgb(255 255 255 / .5); color: rgb(255 255 255); }
.ah-banner-3d-nut:focus-visible { outline: 2px solid rgb(255 255 255 / .8); outline-offset: 2px; }
.ah-banner-3d-cham { width: 7px; height: 7px; border-radius: 50%; background: currentColor; opacity: .7; }
/* Dang tai: cham nhap nhay, khong them chu "dang tai..." o cho khac. */
.ah-banner-3d-nut[aria-pressed="true"] .ah-banner-3d-cham { animation: ah-3d-nhip 1s ease-in-out infinite; }
@keyframes ah-3d-nhip { 0%, 100% { opacity: .25; } 50% { opacity: 1; } }
@media (max-width: 991px) { .ah-banner-3d-nut { display: none; } }

/* Lop chu nam TREN, va KHONG chan chuot o vung trong: khach van keo xoay
   duoc khoi lap phuong o khoang giua hai cot chu. Rieng chu va nut thi bat
   lai chuot, neu khong thi khong ai boi den hay bam duoc. */

@media (max-width: 991px) {
  .ah-banner-3d { width: 100%; opacity: .5; }
  /* Man hep thi canh nam sau chu -> phai lam mo bot, neu khong chu trang tren
     khoi sang se tut xuong duoi nguong doc duoc. Do chu KHONG doan: mot lop
     phu toi 0.45 giu tuong phan chu/nen tren 4.5:1 o cho sang nhat cua canh. */
  .ah-banner-3d::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgb(8 8 12 / .45);
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   `.mil-wrapper` PHAI DUNG `clip`, KHONG DUOC DUNG `hidden`.

   LOI THAT, do 13/09/2026. Khung Nang luc ghim (`position: sticky`) khong dinh
   gi ca: cuon toi no thi ca khoi TROI MAT, de lai 4 man hinh TRANG TRON. Moi
   phep do deu bao binh thuong - the co that, chieu cao dung, canvas 759x468,
   mau chu den tren nen trang - chi anh chup moi cho thay trang khong co gi.

   Do ra: `.mil-wrapper { overflow: hidden }`. Bat ky to tien nao co `overflow`
   khac `visible` deu tao mot VUNG CUON MOI, va mot phan tu sticky dinh vao
   vung cuon gan nhat chu khong phai vao man hinh. Ruot dinh vao `.mil-wrapper`
   - thu khong bao gio cuon - nen no y het khong dinh gi.

   Trinh duyet KHONG BAO GI CA. Khong canh bao, khong loi. `position` van doc
   ra la "sticky" khi hoi `getComputedStyle`. Do dung la lop loi chi lo ra khi
   NHIN, khong lo ra khi DO.

   `overflow-x: clip` cat ngang y het `hidden` nhung KHONG tao vung cuon, nen
   sticky song. `overflow-y` phai la `visible` - de `auto` hay `hidden` la tao
   lai vung cuon va hong y nhu cu.

   Duong lui cho trinh duyet cu (Safari duoi 16 khong co `clip`): giu `hidden`.
   O do khung Nang luc mat hieu ung ghim va thanh mot khoi thuong - VAN DOC
   DUOC DU BON NANG LUC, chi khong co chuyen dong. Hong ve phia con dung duoc.
   ══════════════════════════════════════════════════════════════════════════ */
@supports (overflow: clip) {
  .mil-wrapper {
    overflow-x: clip;
    overflow-y: visible;
  }
}

/* Tieu de khoi Nang luc bi THANH DAU TRANG che, do 13/09/2026 bang anh chup:
   `.ah-nl-ruot` dinh o `top: 0`, ma thanh dau trang cua site cung nam o do va
   cao ~100px, nen dong "Nang luc chung minh duoc" bi cat doi.
   Khong ha `top` cua ruot xuong: lam the thi ca khung tut xuong va the cuoi bi
   day ra ngoai man. Chi day DONG DAU xuong duoi thanh do. */
.ah-nl-dau { padding-top: clamp(104px, 13vh, 140px); }
@media (max-width: 991px) { .ah-nl-dau { padding-top: 88px; } }

/* ══════════════════════════════════════════════════════════════════════════
   BANNER: canh 3D la NEN TRAN KHUNG, khong phai mot o chu nhat.

   CEO 13/09/2026: "ap dung cai nen co ma, sao m lam no may moc vay, va khi t
   hover vao thi khong thay chuyen dong". Dung ca hai y.

   LOI 1 - BO CUC. Ban dau dat canh vao mot o rong 62% ben phai. Do la dat mot
   BUC TRANH len tuong, khong phai lam cai TUONG. Nay canh phu ca khung banner
   va chu nam tren no.

   LOI 2 - HOVER KHONG TOI NOI. Do 13/09 bang elementsFromPoint tai ba diem
   tren canh: lop tren cung LUON la chu, va `.ah-banner-chu` tinh ra
   `pointer-events: all` chu khong phai `none` nhu luat cua ta viet - mot luat
   khac trong theme co do uu tien cao hon da de len. Con `.ah-banner-3d` thi
   tinh ra `none`, tuc canh KHONG HE nhan duoc con chuot.
   Ket qua: re chuot len khoi lap phuong khong co gi xay ra, dung nhu CEO thay.

   Nen o day dung `!important` - co chu dinh, khong phai cho tien. Day la mot
   cuoc tranh do uu tien voi CSS cua template ma ta khong sua duoc, va hai
   thuoc tinh nay quyet dinh mot tinh nang CO CHAY HAY KHONG.
   ══════════════════════════════════════════════════════════════════════════ */

.ah-banner-3d {
  position: absolute;
  inset: 0;                 /* TRAN KHUNG, khong con la o ben phai */
  width: 100%;
  z-index: 0;
  pointer-events: auto !important;
}
.ah-banner-3d .ah-3d,
.ah-banner-3d .ah-3d-khung,
.ah-banner-3d spline-viewer {
  height: 100%;
  border-radius: 0;
  pointer-events: auto !important;
}

/* ── CAT BO PHAN CHU TIENG ANH NUONG SAN TRONG CANH ─────────────────────────
   Canh community khong chi co khoi lap phuong: ben trong da nuong san mot ban
   mau trang chu tieng Anh (tieu de, menu, hai nut, dong WEB3). Ta khong sua
   duoc canh tu day.
   Cach chua tam: phong to va day len, de phan chu cua canh roi xuong DUOI day
   banner va bi `overflow: hidden` cat mat, con khoi lap phuong thi day khung.
   Day la mot mieng va, KHONG phai ban cuoi - ban cuoi la CEO xoa cac lop chu
   trong Spline roi export lai. Ghi ro de sau khong ai tuong day la thiet ke. */
/* MIENG VA DA GO 13/09/2026. Truoc day phong to va day len de day phan chu
   tieng Anh cua canh ra ngoai khung. Nay an thang nhom `UI` bang API cua trinh
   xem (xem prop `an` trong SanKhau3D.tsx) - dung han, va khong lam lech phep
   do tia ben trong canvas. */

@media (max-width: 991px) {
  .ah-banner-3d { opacity: .55; }
  /* Man hep: chu nam de len canh -> phai ha do sang cua canh xuong, neu khong
     chu trang tren khoi sang tut duoi nguong doc duoc. */
  .ah-banner-3d::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgb(8 8 12 / .5);
    pointer-events: none;
  }
}

/* ── BANNER 3D "HE THONG" (Banner3D.tsx), 15/09/2026 ────────────────────────
   Anh tinh nam DUOI canh: canh ve nen dac nen khi hien thi che kin anh, khong
   can an/hien bang JS. `object-position` lech phai vi cum khoi trong canh nam
   ben phai, va o man hep anh bi cat hai ben thi phan bi mat la phan trong. */
.ah-banner-anh {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 70% 50%;
  display: block;
  max-width: none;
}

/* Nhan nang luc khi re chuot. Goc duoi phai, THANG COT voi le phai cua
   `.container` Bootstrap ben trong banner (max-width 1320 o >= 1400px), de
   no khong troi ra mep man 2560 xa cot chu. Khong chan chuot: nam tren canh.
   DO 15/09 bang Chrome that: an chu, chup vung phia sau, lay diem nen SANG
   NHAT (bo 1% nhieu) roi tron mau chu len do. Dong mo ta .78 = 8,85:1 o ca
   1280/1512/2560. So #6aa6ff tren cung nen tinh ra ~5,4:1. */
.ah-banner-nhan {
  position: absolute;
  z-index: 1;
  bottom: 48px;
  right: max(16px, calc((100% - 1320px) / 2 + 12px));
  display: flex;
  align-items: baseline;
  gap: 12px;
  max-width: min(520px, 45%);
  flex-wrap: wrap;
  pointer-events: none;
  color: #fff;
  font-size: 1rem;
  line-height: 1.4;
  text-align: right;
  justify-content: flex-end;
}
.ah-banner-nhan-so { font-weight: 600; color: #6aa6ff; }
.ah-banner-nhan-ten { font-weight: 600; }
.ah-banner-nhan-mo { color: rgb(255 255 255 / .78); flex-basis: 100%; }

/* Luoi khoi tu ve o banner (LuoiKhoi.tsx). Phu ca khung, nam duoi chu. */
.ah-luoi {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}

/* ══════════════════════════════════════════════════════════════════════════
   MOI NHIP CUON DUNG TRON MOT KHOI. CEO chot 14/09/2026:
   "moi lan cuon la mot section hien tron ven co ma".

   Phien nay truoc do de nghi KHONG bat dinh toan trang va CEO da duyet ban
   ghim; nay CEO nhac lai dung y ban dau. Da noi y minh mot lan roi, lam theo.

   BA DIEU KIEN de `mandatory` khong thanh cai bay:

   1. MOI DIEM DUNG PHAI CAO DUNG MOT MAN. Neu mot khoi cao hon man hinh thi
      nguoi doc khong dung giua no duoc - cuon mot nhip la nhay qua phan chua
      doc. Vi vay khoi Bai viet rut tu 6 the xuong 3 (mot hang, mot man), va
      khoi Nang luc duoc rai moc cao mot man o tung tru.

   2. TAT TREN DIEN THOAI. O do khoi Nang luc chuyen sang vuot ngang that, va
      mot lop bat dinh doc chong len cu chi vuot ngang la hai co che tranh nhau.
      Them nua `svh` tren iOS Safari nhay theo thanh dia chi an/hien, nen diem
      dung se lech ngay khi thanh do truot.

   3. TAT KHI NGUOI DUNG XIN GIAM CHUYEN DONG. Bat dinh la mot cu di chuyen
      cuong buc - dung thu ho da tat.
   ══════════════════════════════════════════════════════════════════════════ */
@media (min-width: 992px) {
  /* `:has(.ah-nl)` khoa toan bo khoi nay vao DUNG TRANG CHU - trang duy nhat
     co khoi Nang luc. Khong co no thi luat bat dinh se ap cho MOI trang cua
     site, ke ca trang bai viet dai, va nguoi doc khong dung giua bai duoc. */
  html:has(.ah-nl) {
    scroll-snap-type: y mandatory;
    /* KHU `scroll-padding-top`. globals.css dat `scroll-padding-top:
       var(--header-h)` (60px) cho lien ket neo khoi chui duoi thanh dau trang -
       dung cho lien ket neo, nhung o day no lam MOI diem dung lech len 60px.
       Do 14/09: cuon mot nhip dung o 840 thay vi 900, 1740 thay vi 1800, 2640
       thay vi 2700 - lech deu 60px o moi diem, dung dau van tay cua no.
       Cac khoi o day deu cao tron mot man va phai cham dinh man hinh, nen o
       RIENG trang nay khong can chua cho thanh dau trang. */
    scroll-padding-top: 0;
    /* TAT `scroll-behavior: smooth` (globals.css bat toan site).
       Hai co che nay cung doi dieu khien mot cu cuon: `smooth` dang keo trang
       toi mot dich, thi `mandatory` lai keo no ve diem dung gan nhat. Do 14/09:
       cuon mot nhip co lan DUNG YEN, lan khac NHAY QUA mot tru.
       Bat dinh da co chuyen dong rieng cua no, khong can smooth nua. */
    scroll-behavior: auto;
  }

  /* `scroll-snap-stop: always` chan viec mot cu vuot manh truot qua vai khoi.
     Khong co no thi trackpad vuot manh co the bay thang tu banner xuong chan
     trang, va nguoi xem khong bao gio thay khoi Nang luc. */
  .ah-nl-moc {
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  /* CHAN TRANG can theo MEP DUOI, khong phai mep tren.
     Do 14/09: de `start` thi diem dung cua no nam o 6300px, trong khi trang chi
     cuon duoc toi 5878px. Trinh duyet kep ve day va coi do la diem dung gan
     nhat, nen no NHAY THANG tu khoi Nang luc xuong chan trang va BO QUA ca khoi
     Bai viet. Can theo mep duoi thi diem dung cua no dung bang 5878 - toi duoc,
     va khoi Bai viet giu duoc luot cua no. */
  footer {
    scroll-snap-align: end;
    scroll-snap-stop: always;
  }

  /* Moc dung NAM TRONG DONG CHAY. Chinh chung tao ra chieu cao cua khoi Nang
     luc, va chinh chung la cac diem dung.
     Ban truoc dat tuyet doi rong 1px: trinh duyet BO QUA mot so moc (cuon mot
     nhip nhay 1800px, truot qua ca mot tru) du da co `scroll-snap-stop: always`.
     Moc trong dong chay thi khong bi bo qua. */
  .ah-nl-moc {
    height: 100svh;
    pointer-events: none;
  }

  /* Keo phan GHIM ra khoi dong chay bang mot le duoi AM dung bang chieu cao no.
     Nho vay no khong cong them chieu cao, va cac moc bat dau ngay tai dinh khoi
     roi troi qua ben duoi no. */
  .ah-nl-ruot { margin-bottom: -100svh; }
}


/* ════════════════════════════════════════════════════════════════════
   SUA LOI DI DONG 20/09/2026 - do tren Chrome that o 390/412px, xem
   anh-do/mobile-20260920/ (home-390-menu-open.png, home-390-top.png,
   report.json). Site-wide: header, khung menu, popup, skip link.
   ════════════════════════════════════════════════════════════════════ */

/* 1. Nut hamburger .mil-menu-btn (44x44) - SUA O src/app/layout.tsx, khong
   phai o day: layout.tsx co mot the \3c style> noi tuyen dat SAU file nay
   trong <head> voi ".mil-menu-btn{padding:0}" - viet lai luat o day bi
   the do de len (cung do dac ta, sau thang). Xem layout.tsx dong ~228. */

/* 3. Lien ket con trong khung menu (VD "TAT CA DICH VU", "CHUYEN DOI SO")
   do 12px tren MOI trang va hang cao 20px - duoi nguong doc (13px) va
   duoi nguong bam (44px). Nang chu, va dat hang thanh flex de dam bao
   chieu cao toi thieu bat ke so dong. */
@media (max-width: 640px) {
  .mil-main-menu ul li.mil-has-children ul li a {
    font-size: 13px;
    min-height: 44px;
    padding: 11px 0;
    display: flex;
    align-items: center;
  }
  /* Muc cap 1 (Dich vu, Portfolio, Nang luc...) do 43px sau dot 1: line-height
     lam tron xuong. Ep min-height, khong doi co chu. */
  .mil-main-menu > ul > li > a {
    display: flex;
    align-items: center;
    min-height: 46px;
    box-sizing: border-box;
  }
}

/* 8. Nhan/eyebrow/caption in hoa dung chung toan site do 11-12px tren
   mobile - duoi nguong doc 13px. Chi doi font-size, giu nguyen letter
   spacing/mau/bo cuc - day la chinh sua doc duoc, khong phai thiet ke
   lai. Danh sach lay tu do thuc te report.json + quet toan bo tep nay. */
@media (max-width: 640px) {
  .mil-prose blockquote footer,
  .mil-skin .mil-menu-colh,
  .mil-skin .mil-rail-all,
  .mil-skin .mil-rail-group-t,
  .mil-skin .mil-rail-meta {
    font-size: 13px;
  }
}

/* 9. Do 20/09/2026 sau dot 2 (390px): hang lien he trong menu (SDT, Zalo, email,
   Dang nhap) cao 23px; link chan trang cao ~23px; breadcrumb 12px. Chi noi vung
   bam va co chu, khong doi bo cuc. */
@media (max-width: 640px) {
  .mil-menu-extra a,
  .mil-menu-list li a,
  .ah-chan-lien-he a,
  .ah-chan-phap-ly a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
  .mil-social-icons a { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  .mil-breadcrumbs li,
  .mil-breadcrumbs li a { font-size: 13px; }
}
@media (max-width: 640px) {
  /* Con lai sau dot 3: logo 26px, nut tim kiem 20px, link breadcrumb 16px. */
  header .mil-logo,
  .mil-frame-act,
  .mil-breadcrumbs li a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
  .mil-frame-act { min-width: 44px; justify-content: center; }
}


/* ===== tu mil-popup.css ===== */
.ah-modal .ah-modal-backdrop{-webkit-backdrop-filter:blur(6px);background:#040406bd}.ah-modal .ah-modal-card{background:var(--t-surface-2);border:1px solid var(--t-line);text-align:left;max-width:470px;color:var(--t-text);border-radius:4px;padding:38px 36px 32px;box-shadow:0 40px 90px #0009}.ah-modal .ah-modal-logo{color:var(--t-on-accent);margin-bottom:26px;display:block}.ah-modal .ah-modal-logo .mil-logo-mark-wrap{height:30px}.ah-modal .ah-modal-close{border:1px solid var(--t-line);width:34px;height:34px;color:var(--t-text-2);background:0 0;border-radius:50%;transition:border-color .25s,color .25s}.ah-modal .ah-modal-close:hover{border-color:var(--t-muted);color:var(--t-on-accent);background:0 0}.ah-modal .ah-modal-badge{letter-spacing:1.6px;text-transform:uppercase;color:var(--t-muted);background:0 0;align-items:center;gap:9px;margin:0 0 14px;padding:0;font-size:11px;display:inline-flex}.ah-modal .ah-modal-badge i{background:var(--t-accent);width:5px;height:5px;box-shadow:none}.ah-modal .ah-modal-h{letter-spacing:-.4px;color:var(--t-on-accent);margin:0 0 8px;font-size:27px;font-weight:400;line-height:1.26}.ah-modal .ah-modal-h span{color:var(--t-faint);font-weight:400}.ah-modal .ah-modal-sub{color:var(--t-muted);margin:0 0 26px;font-size:13.5px;line-height:1.6}.ah-modal .ah-modal-form{gap:0;margin:0}.ah-modal .ah-modal-field{text-align:left;margin:0 0 20px}.ah-modal .ah-modal-flabel{letter-spacing:1.4px;text-transform:uppercase;color:var(--t-faint);margin:0 0 10px;font-size:11px;display:block}.ah-modal .ah-modal-reasons{flex-wrap:wrap;gap:6px;display:flex}.ah-modal .ah-modal-reasons.is-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.ah-modal .ah-modal-reason{border:1px solid var(--t-line);color:var(--t-text-2);background:0 0;border-radius:2px;padding:10px 14px;font-size:13.5px;font-weight:400;transition:border-color .25s,color .25s,background-color .25s}.ah-modal .ah-modal-reason:hover{border-color:var(--t-faint);color:var(--t-on-accent)}.ah-modal .ah-modal-reason.is-on{border-color:var(--t-accent);color:var(--t-on-accent);background:#ff980021}.ah-modal .ah-modal-row{gap:6px;margin:0 0 20px;display:flex}.ah-modal .ah-modal-input{border:1px solid var(--t-line);color:var(--t-on-accent);background:0 0;border-radius:2px;padding:12px 14px;font-size:14px;transition:border-color .25s}.ah-modal .ah-modal-input:focus{border-color:var(--t-accent);outline:none}.ah-modal .ah-modal-input-sm{margin-top:6px;padding:10px 14px;font-size:13.5px}.ah-modal .ah-modal-more{-webkit-appearance:none;appearance:none;letter-spacing:1.4px;text-transform:uppercase;color:var(--t-muted);border:0;border-bottom:1px solid var(--t-line-strong);cursor:pointer;background:0 0;margin:0;padding:0 0 3px;font-family:inherit;font-size:11px;font-weight:400;transition:color .25s,border-color .25s}.ah-modal .ah-modal-more:hover{color:var(--t-on-accent);border-color:var(--t-muted)}.ah-modal .ah-modal-more[aria-expanded=true]{margin-bottom:12px}.ah-modal .ah-modal-slots{margin-top:6px}.ah-modal .ah-modal-bk-note{color:var(--t-muted);margin:10px 0 0;font-size:12px}.ah-modal .ah-modal-cta{border:1px solid var(--t-line-strong);letter-spacing:.3px;width:100%;color:var(--t-on-accent);background:0 0;border-radius:2px;justify-content:center;align-items:center;gap:10px;margin:4px 0 0;padding:15px 22px;font-size:14px;font-weight:400;transition:border-color .3s,background-color .3s;display:flex}.ah-modal .ah-modal-cta:hover{background:#ff98001f;border-color:#ff9800e6;transform:none}.ah-modal .ah-modal-cta:disabled{opacity:.55}.ah-modal .ah-modal-spinner{border-color:var(--t-faint);border-top-color:var(--t-on-accent)}.ah-modal .ah-modal-or{letter-spacing:1.4px;text-transform:uppercase;color:var(--t-faint);align-items:center;gap:14px;margin:22px 0 14px;font-size:11px;display:flex}.ah-modal .ah-modal-or:before,.ah-modal .ah-modal-or:after{content:"";background:var(--t-line);flex:1;height:1px}.ah-modal .ah-modal-or span{background:0 0;padding:0}.ah-modal .ah-modal-zalo{border:1px solid var(--t-line);color:var(--t-text-2);background:0 0;border-radius:2px;justify-content:center;align-items:center;gap:10px;padding:12px 18px;font-size:13.5px;font-weight:400;transition:border-color .25s,color .25s;display:flex}.ah-modal .ah-modal-zalo:hover{border-color:var(--t-faint);color:var(--t-on-accent)}.ah-modal .ah-modal-zalo svg{border-radius:4px;width:22px;height:22px}.ah-modal .ah-modal-err{color:#ff7a7a;margin:14px 0 0;font-size:13px}.ah-modal .ah-modal-done{text-align:left}.ah-modal .ah-modal-ic{width:44px;height:44px;color:var(--t-accent-text);background:0 0;border:1px solid #ff98008c;border-radius:50%;margin-bottom:20px}.ah-modal .ah-modal-ic svg{width:20px;height:20px}@media (width<=520px){.ah-modal .ah-modal-card{border-radius:3px;padding:28px 20px 24px}.ah-modal .ah-modal-h{font-size:23px}.ah-modal .ah-modal-logo{margin-bottom:20px}}.ah-modal .ah-modal-logo{line-height:0;display:block}.ah-modal .ah-modal-logo .mil-logo-mark-wrap{width:auto;height:32px;display:inline-block}.ah-modal .ah-modal-logo .mil-logo-mark{width:auto;height:32px}.ah-modal .ah-modal-logo .mil-logo-ink{width:100%;height:100%}.ah-modal .ah-modal-row{gap:8px}@media (width<=640px){.ah-modal .ah-modal-card{max-width:470px;padding:28px 20px 24px}.ah-modal .ah-modal-reasons.is-grid{grid-template-columns:1fr 1fr}}.ah-modal .ah-modal-or{color:var(--t-muted)!important}.ah-modal .ah-modal-flabel,.ah-modal .ah-modal-h span,.ah-modal .ah-modal-sub,.ah-modal .ah-modal-more{color:var(--t-text-2)!important}.ah-modal .ah-modal-input::placeholder{color:var(--t-muted)!important}.ah-modal .ah-modal-reason{min-height:44px}.ah-modal .ah-modal-close{width:44px;height:44px}.ah-modal .ah-modal-more{align-items:center;min-height:44px;display:inline-flex}.ah-modal .ah-modal-h,.ah-modal .ah-modal-cta,.ah-modal .ah-modal-reason.is-on,.ah-modal .ah-modal-input,.ah-modal .ah-modal-zalo:hover,.ah-modal .ah-modal-reason:hover,.ah-modal .ah-modal-close:hover{color:var(--t-text)!important}.ah-modal .ah-modal-ic{color:var(--t-accent-text)!important}.ah-modal .ah-modal-card{max-width:720px;padding:34px 34px 28px}.ah-modal .ah-modal-cols{grid-template-columns:1fr 1fr;align-items:start;gap:12px 28px;display:grid}.ah-modal .ah-col-l{grid-area:1/1/span 3;margin-bottom:0}.ah-modal .ah-col-r{grid-column:2;margin-bottom:14px}.ah-modal .ah-modal-reasons.is-grid{grid-template-columns:1fr 1fr}.ah-modal .ah-modal-row{flex-direction:column;gap:10px}.ah-modal .ah-col-r .ah-modal-reasons{grid-template-columns:1fr 1fr;gap:7px;display:grid}.ah-modal .ah-modal-cta{margin-top:16px}.ah-modal .ah-modal-or{margin:16px 0 12px}@media (width<=720px){.ah-modal .ah-modal-card{max-width:470px;padding:26px 20px 22px}.ah-modal .ah-modal-cols{grid-template-columns:1fr;gap:0}.ah-modal .ah-col-l,.ah-modal .ah-col-r{grid-area:auto/1;margin-bottom:18px}.ah-modal .ah-modal-row{flex-direction:row}}.ah-modal .ah-modal-card{width:100%}.ah-nudge{--nudge-line:#00000073;box-sizing:border-box;border:1px solid var(--nudge-line);background:var(--t-surface-2);width:356px;max-width:calc(100vw - 32px);color:var(--t-text);opacity:0;transition-behavior:allow-discrete;border-radius:4px;gap:11px;margin:0;padding:20px 56px 20px 22px;transition-property:opacity,translate,display,overlay;transition-duration:.34s;transition-timing-function:cubic-bezier(.16,1,.3,1);position:fixed;inset:auto 20px 20px auto;overflow:visible;translate:0 14px;box-shadow:0 18px 44px #0000002e}:root[data-theme=dark] .ah-nudge{--nudge-line:#fff6;box-shadow:0 18px 44px #0000009e}.ah-nudge:where(:popover-open){opacity:1;display:grid;translate:0}@starting-style{.ah-nudge:where(:popover-open){opacity:0;translate:0 14px}}.ah-nudge .ah-nudge-eyebrow{letter-spacing:1.6px;text-transform:uppercase;color:var(--t-text-2);align-items:center;gap:8px;margin:0;font-size:11px;font-weight:400;display:inline-flex}.ah-nudge .ah-nudge-eyebrow i{background:var(--t-accent);flex:none;width:5px;height:5px}.ah-nudge .ah-nudge-t{letter-spacing:-.1px;color:var(--t-text);margin:0;font-size:15px;font-weight:400;line-height:1.5}.ah-nudge .ah-nudge-go{-webkit-appearance:none;appearance:none;letter-spacing:.3px;background:var(--t-accent);min-height:44px;color:var(--t-on-accent);border:1px solid var(--t-accent);cursor:pointer;border-radius:2px;justify-self:start;align-items:center;margin:3px 0 0;padding:0 20px;font-family:inherit;font-size:13.5px;font-weight:400;transition:filter .25s;display:inline-flex}.ah-nudge .ah-nudge-go:hover{filter:brightness(1.14)}.ah-nudge .ah-nudge-x{-webkit-appearance:none;appearance:none;width:44px;height:44px;color:var(--t-text-2);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;margin:0;padding:0;transition:color .25s,background-color .25s;display:grid;position:absolute;top:7px;right:7px}.ah-nudge .ah-nudge-x:hover{color:var(--t-text);background:var(--t-hover)}.ah-nudge .ah-nudge-x svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;width:15px;height:15px}.ah-nudge .ah-nudge-go:focus-visible,.ah-nudge .ah-nudge-x:focus-visible{outline:2px solid var(--t-accent);outline-offset:2px}@media (width<=560px){.ah-nudge{width:auto;max-width:none;padding:17px 52px 17px 18px;inset:auto 12px 12px}.ah-nudge .ah-nudge-t{font-size:14.5px}}@media (prefers-reduced-motion: reduce) and (update: none){.ah-nudge{transition-duration:.1s;translate:none}.ah-nudge:where(:popover-open){translate:none}@starting-style{.ah-nudge:where(:popover-open){translate:none}}}.ah-modal .ah-modal-cta{border-color:#00000073}:root[data-theme=dark] .ah-modal .ah-modal-cta{border-color:#ffffff6b}
/* ════════════════════════════════════════════════════════════════
   SOFT-TECH SKIN CHO POPUP TƯ VẤN — 2026-08-23
   Áp cho .ah-nudge (thẻ mời góc dưới) và .ah-modal-* (form đầy đủ,
   dùng chung ở HomeStickyBar.tsx và UocLuongTool.tsx).

   VÌ SAO ĐẶT Ở CUỐI FILE NÀY:
   .ah-modal-* có HAI nguồn định nghĩa cạnh tranh nhau:
     1. src/app/home-apple.css (bundle theo Next, nạp sớm) - kiểu
        Apple xanh dương, bo tròn, có animation nhập cuộc.
     2. file này, mil-popup.css (nạp bằng <link> SAU bundle Next,
        xem layout.tsx) - kiểu cam phẳng cũ.
   Cascade theo THỨ TỰ NGUỒN khi độ đặc hiệu bằng nhau, nên file này
   luôn thắng cho MÀU/VIỀN/BÓNG dù home-apple.css vẫn còn kiểm soát
   animation/position/layout (hai bên không đụng chung thuộc tính).
   Khối dưới đây nối vào NGAY CUỐI file này nên là tiếng nói cuối
   cùng - thắng cả bản cam phẳng cũ lẫn bản xanh Apple.

   CHỈ đổi da (nền, viền, bo góc, đổ bóng, màu chữ) - KHÔNG đụng
   layout/animation/position để không phá form đang chạy tốt. */

:root {
  /* NEN DEN 16/09/2026 */
  --pop-surface: #131417;
  --pop-surface-low: #1a1b1f;
  --pop-surface-mid: #202126;
  --pop-ink: #f3f3f4;
  --pop-ink-2: #c8c9d0;
  --pop-ink-3: #a5a6ad;
  --pop-line-soft: #26272b;
  --pop-accent: #ff9800;
  --pop-accent-hi: #ffb44a;
  --pop-accent-lo: #f28c00;
  --pop-accent-text: #ffb04a;
  --pop-accent-wash: #1d1810;
  --pop-sh-1: 0 1px 2px rgba(26,28,45,.035), 0 4px 12px -3px rgba(26,28,45,.055);
  --pop-sh-2: 0 2px 5px rgba(26,28,45,.04), 0 14px 30px -12px rgba(26,28,45,.10);
}

/* ── Thẻ mời nhẹ góc dưới ── */
.ah-nudge {
  border: none;
  background: linear-gradient(180deg, var(--pop-surface) 0%, var(--pop-surface-low) 100%);
  border-radius: 18px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.07), var(--pop-sh-2);
}
.ah-nudge .ah-nudge-eyebrow { color: var(--pop-accent-text); }
.ah-nudge .ah-nudge-eyebrow i { background: var(--pop-accent); box-shadow: 0 0 0 3px rgba(255,152,0,.16); }
.ah-nudge .ah-nudge-t { color: var(--pop-ink); }
.ah-nudge .ah-nudge-go {
  border: 0; border-radius: 999px;
  text-transform: uppercase; letter-spacing: .8px; font-weight: 600;
  background: linear-gradient(180deg, var(--pop-accent-hi) 0%, var(--pop-accent) 45%, var(--pop-accent-lo) 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.62), inset 0 -1px 2px rgba(0,0,0,.16),
              0 1px 2px rgba(26,28,45,.18), 0 9px 20px -8px rgba(255,152,0,.42);
  color: #2b1800 !important;
  transition: filter .2s ease, transform .18s ease, box-shadow .18s ease;
}
.ah-nudge .ah-nudge-go:hover { filter: brightness(1.06); transform: translateY(-1px); }
.ah-nudge .ah-nudge-go:active { transform: translateY(1px); filter: brightness(.97); }
.ah-nudge .ah-nudge-x { color: var(--pop-ink-3); }
.ah-nudge .ah-nudge-x:hover { color: var(--pop-ink); background: var(--pop-surface-mid); }

/* ── Nền mờ phía sau modal ── */
.ah-modal .ah-modal-backdrop {
  background: rgba(26,28,45,.5);
  -webkit-backdrop-filter: blur(10px) saturate(1.1);
  backdrop-filter: blur(10px) saturate(1.1);
}

/* ── Thẻ modal ── */
.ah-modal .ah-modal-card {
  border: none;
  background: linear-gradient(180deg, var(--pop-surface) 0%, var(--pop-surface-low) 100%);
  border-radius: 26px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 30px 70px -24px rgba(26,28,45,.32), 0 10px 28px -12px rgba(26,28,45,.16);
}
.ah-modal .ah-modal-close {
  border: 0;
  background: linear-gradient(180deg, #fff, var(--pop-surface-mid));
  box-shadow: var(--pop-sh-1), inset 0 1px 0 #fff;
  color: var(--pop-ink-3);
  transition: box-shadow .2s ease, color .2s ease;
}
.ah-modal .ah-modal-close:hover { box-shadow: var(--pop-sh-2), inset 0 1px 0 #fff; color: var(--pop-ink) !important; }

/* ── Huy hiệu tick khi xong (giữ tông xanh lá - ngữ nghĩa "thành công") ── */
.ah-modal .ah-modal-ic {
  border: 0;
  background: linear-gradient(180deg, #fff, var(--pop-surface-mid));
  box-shadow: var(--pop-sh-1), inset 0 1px 0 #fff;
  color: var(--pop-accent-text) !important;
}
.ah-modal .ah-modal-ic.ok {
  background: linear-gradient(180deg, #eafaf0, #d7f3e2);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 10px 22px -10px rgba(29,157,87,.35);
  color: #1d9d57 !important;
}

/* ── Nhãn/eyebrow, tiêu đề, mô tả ── */
.ah-modal .ah-modal-badge { background: var(--pop-accent-wash); color: var(--pop-accent-text); border-radius: 999px; padding: 5px 12px; }
.ah-modal .ah-modal-badge i { background: var(--pop-accent); box-shadow: none; }
.ah-modal .ah-modal-h { color: var(--pop-ink) !important; font-weight: 700; }
.ah-modal .ah-modal-h span { color: var(--pop-accent-text) !important; }
.ah-modal .ah-modal-sub { color: var(--pop-ink-2) !important; }
.ah-modal .ah-modal-flabel { color: var(--pop-ink-3) !important; }

/* ── Chip lựa chọn (dịch vụ / ngân sách / ngày / giờ) ── */
.ah-modal .ah-modal-reason {
  border: 0; border-radius: 14px;
  background: linear-gradient(180deg, #fff, var(--pop-surface-low));
  box-shadow: var(--pop-sh-1), inset 0 1px 0 #fff;
  color: var(--pop-ink-2);
  transition: box-shadow .2s ease, color .2s ease, background .2s ease;
}
.ah-modal .ah-modal-reason:hover { box-shadow: var(--pop-sh-2), inset 0 1px 0 #fff; color: var(--pop-ink) !important; }
.ah-modal .ah-modal-reason.is-on {
  background: linear-gradient(180deg, var(--pop-accent-hi), var(--pop-accent-lo));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.55), inset 0 -1px 2px rgba(0,0,0,.12), 0 3px 10px -4px rgba(255,152,0,.45);
  color: #2b1800 !important;
}

/* ── Nhu cầu đã chọn sẵn (mở từ chip pain-point) ── */
.ah-modal-preset {
  background: var(--pop-accent-wash); border: 0; border-radius: 14px;
  box-shadow: inset 0 1px 0 #fff;
}
.ah-modal-preset-tag { color: var(--pop-ink); }
.ah-modal-preset-tag svg { stroke: var(--pop-accent-text); }
.ah-modal-preset-change { color: var(--pop-accent-text); }
.ah-modal-preset-change:hover { background: rgba(255,152,0,.12); }

/* ── Ô nhập: chìm nhẹ kiểu neomorphism thay vì viền phẳng ── */
.ah-modal .ah-modal-input {
  border: 0; border-radius: 12px;
  background: var(--pop-surface-low);
  box-shadow: inset 1px 1px 3px rgba(26,28,45,.07), inset -1px -1px 2px #fff;
  color: var(--pop-ink) !important;
  transition: box-shadow .2s ease;
}
.ah-modal .ah-modal-input:focus {
  box-shadow: inset 1px 1px 3px rgba(26,28,45,.07), inset -1px -1px 2px #fff, 0 0 0 3px rgba(255,152,0,.2);
}
.ah-modal .ah-modal-input::placeholder { color: var(--pop-ink-3) !important; }

/* ── Nút "Hẹn giờ gọi lại" (link nhỏ) ── */
.ah-modal .ah-modal-more { color: var(--pop-ink-3); border-bottom-color: var(--pop-line-soft); }
.ah-modal .ah-modal-more:hover { color: var(--pop-ink); border-bottom-color: var(--pop-ink-3); }

/* ── Nút chính, biến thể B vát sáng cong mặt (đồng bộ .qt-btn) ── */
.ah-modal .ah-modal-cta {
  border: 0; border-radius: 999px;
  text-transform: uppercase; letter-spacing: .6px; font-weight: 600;
  background: linear-gradient(180deg, var(--pop-accent-hi) 0%, var(--pop-accent) 45%, var(--pop-accent-lo) 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.62), inset 0 -1px 2px rgba(0,0,0,.16),
              0 1px 2px rgba(26,28,45,.18), 0 9px 20px -8px rgba(255,152,0,.42);
  color: #2b1800 !important;
  transition: filter .2s ease, transform .18s ease, box-shadow .18s ease;
}
.ah-modal .ah-modal-cta:hover {
  filter: brightness(1.06); transform: translateY(-1px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.68), inset 0 -1px 2px rgba(0,0,0,.16),
              0 2px 4px rgba(26,28,45,.2), 0 13px 26px -8px rgba(255,152,0,.5);
}
.ah-modal .ah-modal-cta:active { transform: translateY(1px); filter: brightness(.97); }
.ah-modal .ah-modal-cta:disabled { opacity: .6; filter: none; transform: none; }
.ah-modal .ah-modal-spinner { border-color: rgba(43,24,0,.3); border-top-color: #2b1800; }

/* ── Divider "hoặc" ── */
.ah-modal .ah-modal-or { color: var(--pop-ink-3) !important; }
.ah-modal .ah-modal-or:before,
.ah-modal .ah-modal-or:after { background: var(--pop-line-soft); }

/* ── Nút phụ (Zalo / Gọi) - ghost mềm ── */
.ah-modal .ah-modal-zalo,
.ah-modal-call {
  border: 0; border-radius: 999px;
  background: linear-gradient(180deg, #fff 0%, var(--pop-surface-low) 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.07), inset 0 -1px 2px rgba(26,28,45,.06), var(--pop-sh-1);
  color: var(--pop-ink);
  transition: transform .18s ease, box-shadow .18s ease, color .2s ease;
}
.ah-modal .ah-modal-zalo:hover,
.ah-modal-call:hover {
  transform: translateY(-1px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.07), var(--pop-sh-2);
  color: var(--pop-ink) !important;
}

/* ── Thông báo lỗi ── */
.ah-modal .ah-modal-err { color: #b3261e; background: #fdecea; border: 0; border-radius: 12px; padding: 8px 12px; }

/* ── Nhãn nhỏ "Ước tính: X" (UocLuongTool) ── */
.ah-modal-step {
  background: var(--pop-accent-wash); color: var(--pop-accent-text) !important;
  border-radius: 999px; border: 0;
}

/* ── Hẹn gọi lại: ghi chú xác nhận ── */
.ah-modal .ah-modal-bk-note { color: var(--pop-accent-text); }

/* ── Do 20/09/2026 tren 390/412px: nhan/chu nho trong popup duoi nguong doc
   13px (line 1 cua file nay - CSS goc nen ".ah-modal ..." dat font-size 11px
   khong trong media query nao, ap dung moi kich thuoc man hinh). Phai sua o
   DAY vi do "the .ah-modal " lam do dac ta 2 lop, cao hon ban home-apple.css
   dang co (1 lop), nen ban do bi de. ── */
@media (max-width: 640px) {
  .ah-modal .ah-modal-flabel,
  .ah-modal .ah-modal-more,
  .ah-modal .ah-modal-or {
    font-size: 13px;
  }
}

