*{box-sizing:border-box}
body{margin:0;background:#f4f8fa;color:#13334a;font-family:"Be Vietnam Pro",sans-serif;font-size:14px;line-height:1.6}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{outline-offset:4px}
button{cursor:pointer}
img{max-width:100%}
.icon{width:21px;height:21px;vertical-align:middle;fill:none;stroke:currentColor;flex-shrink:0}
h1,h2,h3,p{margin-top:0}
h1{font-size:30px;line-height:1.3}
h2{font-size:19px;line-height:1.4}
h3{font-size:16px}
.site-header{height:88px;display:flex;align-items:center;gap:24px;padding:0 2.2%;background:#fff;border-bottom:1px solid #e4eceb;position:relative;z-index:10}
.brand{display:flex;align-items:center;gap:9px;min-width:225px}
.brand-symbol{width:48px;color:#149866;display:flex;flex-direction:column;gap:0}
.brand-symbol .icon{width:45px;height:25px}
.brand-symbol .icon:first-child{color:#ee951d}
.brand strong{font-size:31px;line-height:1;letter-spacing:1px;display:block}
.brand strong b:nth-child(1){color:#985125}
.brand strong b:nth-child(2){color:#178a51}
.brand strong b:nth-child(3){color:#215696}
.brand strong b:nth-child(4){color:#f48f1a}
.brand em{display:block;font-weight:800;font-size:13px;line-height:1.4;font-style:normal;color:#086041}
.brand small{font-size:8px;display:block;color:#476459}
.main-nav{display:flex;gap:20px;align-items:center;flex:1;justify-content:center;white-space:nowrap}
.main-nav a{font-size:12px;font-weight:600;padding:29px 0;position:relative}
.main-nav a:hover,.main-nav a.active{color:#038758}
.main-nav a.active:after{content:'';position:absolute;bottom:18px;left:0;right:0;height:2px;background:#039b65}
.header-actions{display:flex;align-items:center;gap:15px;white-space:nowrap}
.language{font-size:12px}
.button,button.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(110deg,#057750,#00a26a);color:#fff;padding:11px 20px;border:1px solid transparent;border-radius:7px;font-weight:600;line-height:1.5;transition:.18s}
.button:hover{filter:brightness(.93);transform:translateY(-1px)}
.button.compact{font-size:12px;border-radius:30px;padding:9px 15px}
.button.outline{border-color:#169b70;color:#08734f;background:#fff}
.button.full{width:100%}
.button-row{display:flex;gap:12px;margin-top:24px}
.mobile-menu{display:none}
.home-hero{background:linear-gradient(90deg,rgba(0,35,65,.85),rgba(0,47,70,.02) 75%),url('/assets/banners-clean/home-hero-2172.webp') center 53%/cover;min-height:435px;color:#fff;position:relative}
.hero-inner{max-width:1500px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:40px 50px}
.hero-script{font-family:Georgia,serif;font-style:italic;font-size:41px}
.hero-copy h1{font-size:66px;letter-spacing:1px;line-height:1.07;margin:0 0 10px;font-weight:800;text-shadow:0 3px 6px #173543}
.hero-copy h1 span{color:#ffce56}
.hero-copy h2{color:#ffd665;font-size:22px;margin:0 0 10px}
.hero-copy p{font-size:15px;line-height:1.6;margin-bottom:18px;color:#f1f8fc}
.hero-search{background:white;display:flex;align-items:center;gap:12px;padding:5px 5px 5px 15px;border-radius:9px;max-width:690px;color:#1d4467}
.hero-search input{flex:1;border:0;min-width:0;margin:0!important;padding:7px}
.hero-search button{background:#0763d7;border:0;border-radius:5px;color:white;padding:9px 32px;font-weight:600}
.hero-shortcuts{display:flex;gap:10px;margin-top:14px}
.hero-shortcuts a{background:#faffff;color:#086e51;border-radius:12px;padding:8px 14px;font-weight:600;font-size:12px}
.hero-shortcuts a:nth-child(2){color:#db7b13}
.hero-shortcuts a:nth-child(3){color:#7841cb}
.hero-shortcuts a:nth-child(4){color:#de4242}
.hero-shortcuts .icon{width:18px;margin-right:5px}
.hero-signature,.banner-signature{font:italic 49px Georgia,serif;text-shadow:0 2px 3px #15415c;text-align:center;transform:rotate(-6deg)}
.hero-signature small,.banner-signature small{display:block;font:italic 22px/1.5 Georgia,serif}
.hero-signature i{display:block;width:180px;height:5px;background:#ffd35b;margin:10px auto;transform:rotate(-4deg);border-radius:50%}
.hero-caption{position:absolute;bottom:12px;right:25px;font-size:10px;color:#e5f5ff}
.hero-caption .icon{width:13px}
.stats-strip{display:grid;grid-template-columns:repeat(5,1fr);background:linear-gradient(90deg,#fff,#f0f8fd);border-bottom:1px solid #e5edf1;padding:20px 3%;gap:20px}
.stat{display:flex;gap:15px;align-items:center;border-right:1px solid #d6e2e8;padding-left:20px}
.stat:last-child{border:0}
.stat>.icon{width:37px;height:37px;color:#07955d}
.stat:nth-child(2)>.icon{color:#0870df}
.stat:nth-child(3)>.icon{color:#f29715}
.stat:nth-child(4)>.icon{color:#8352d5}
.stat strong{display:block;font-size:24px;line-height:1.2}
.stat span{font-size:11px;color:#456071}
.container{max-width:1536px;margin:auto;padding:28px 32px}
.panel{background:white;border:1px solid #e2ebed;box-shadow:0 3px 12px #163c5510;border-radius:12px;padding:22px}
.home-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:24px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px}
.section-heading h2{font-size:16px;margin:0;font-weight:800}
.section-heading h2 .icon{color:#069760;margin-right:6px}
.section-heading>a{color:#008457;font-size:12px;white-space:nowrap;font-weight:600}
.section-heading p{margin:5px 0 0}
.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}
.home-products{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.product-card{border:1px solid #e4ebee;border-radius:9px;overflow:hidden;background:white;transition:transform .2s,box-shadow .2s;min-width:0}
.product-card:hover{transform:translateY(-4px);box-shadow:0 10px 24px #17364f14}
.product-photo{aspect-ratio:1.3;display:block;position:relative;background:#fafcfa;overflow:hidden}
.product-photo img{width:100%;height:100%;object-fit:contain}
.product-photo .badge{position:absolute;left:7px;bottom:7px;font-size:8px;padding:3px 7px}
.badge{border-radius:5px;background:#f2a718;color:white;font-weight:700;font-size:11px;padding:5px 10px}
.badge.soft{background:#eff9ef;color:#16754c;border:1px solid #d3e9d9}
.product-info{padding:12px}
.product-name{font-weight:700;font-size:13px;line-height:1.5;display:block;min-height:39px}
.product-info p{color:#70838a;font-size:10px;line-height:1.5;margin:9px 0;min-height:30px}
.product-info p .icon{width:12px;height:12px;color:#189377}
.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:4px}
.card-bottom>a{color:#108567}
.category-pill{display:inline-block;background:#fff2e0;color:#b96913;border-radius:20px;font-size:10px;padding:4px 8px}
.home-products .product-info{padding:8px}
.home-products .product-name{font-size:11px}
.home-products .category-pill{font-size:8px}
.boundary-preview{display:flex;position:relative;background:#e6f2f4;border-radius:9px;min-height:260px;overflow:hidden}
.boundary-preview img{width:43%;height:265px;object-fit:contain}
.boundary-preview>div{flex:1;padding:30px 12px}
.boundary-preview h3{font-size:23px;margin:15px 0 8px;line-height:1.25}
.boundary-preview p{font-size:12px;color:#577483}
.boundary-preview .badge{font-size:7px;background:#d9eee4;color:#07664a}
.boundary-preview .button{font-size:10px;padding:8px 12px}
.home-bottom{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:24px;margin:25px 0 10px}
.category-grid{display:flex;justify-content:space-between;gap:15px}
.category-grid a{text-align:center;flex:1;font-size:10px}
.category-grid span{display:flex;align-items:center;justify-content:center;border-radius:50%;width:60px;height:60px;background:#fff2dc;margin:5px auto 9px;color:#199164}
.category-grid .icon{width:33px;height:33px}
.category-grid a:nth-child(2) span{color:#ac3e51;background:#fbeef0}
.category-grid a:nth-child(3) span{background:#e3f3e9}
.trace-teaser p,.join-teaser p{font-size:12px;color:#69808c}
.join-teaser{background:linear-gradient(125deg,#edf8ed,#fff)}
.join-teaser a{color:#078253;font-weight:700}
.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:700}
.join-teaser .eyebrow{color:#369166}
.site-footer{background:linear-gradient(#ffffffdc,#ffffffa8),url('/assets/banners-clean/home-footer-2172.webp') center 65%/cover;margin-top:25px;border-top:1px solid #dde8e8}
.footer-content{max-width:1500px;display:grid;grid-template-columns:1fr 1fr 1fr 1.4fr;gap:40px;padding:35px 40px;margin:auto;font-size:12px}
.footer-content h4{margin:0 0 10px}
.footer-content a:not(.footer-brand){display:block;margin:6px 0}
.footer-brand{font-size:27px;font-weight:800;color:#0a8255}
.footer-brand strong{font-size:12px;display:block}
.footer-bottom{text-align:center;border-top:1px solid #dce6df80;padding:10px;color:#607865;font-size:10px}
.page-banner{height:205px;display:flex;align-items:center;justify-content:space-between;padding:25px 5%;background-size:cover;background-position:center 55%;color:white}
.page-banner h1{font-size:31px;margin:10px 0 7px}
.page-banner p{color:#ffdb71;font-weight:600;font-size:16px}
.banner-signature{font-size:39px}
.banner-signature small{font-size:18px}
.breadcrumb{font-size:12px;margin:0 0 24px;color:#637a87}
.breadcrumb a{color:#157055}
.catalog-layout{display:grid;grid-template-columns:250px 1fr;gap:25px}
.filters{align-self:start;padding:20px;position:sticky;top:15px}
.filters h3{font-size:13px;color:#185044}
.filters label{font-size:12px}
.catalog-products{grid-template-columns:repeat(4,minmax(0,1fr))}
.muted{color:#6e8590}
.small{font-size:11px}
.view-label{background:white;border:1px solid #d8e4e8;padding:8px;border-radius:5px;font-size:12px}
.pagination{display:flex;justify-content:center;gap:8px;padding:25px}
.pagination button{background:white;border:1px solid #d9e4e9;color:#183e5c;width:35px;height:35px;border-radius:5px}
.pagination .selected{background:#079d6c;color:white}
.subject-card{padding:24px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.subject-card h3{font-size:15px;min-height:65px;margin:0}
.subject-card p{font-size:12px}
.subject-avatar{width:66px;height:66px;border-radius:18px;background:#e8f6ee;color:#168751;display:flex;align-items:center;justify-content:center}
.subject-avatar .icon{width:33px;height:33px}
.subject-card .button{margin-top:auto;font-size:11px}
.detail-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:40px;padding:35px}
.detail-image{height:370px;background:#f9fbf8;border-radius:12px;text-align:center}
.detail-image img{height:100%;object-fit:contain}
.detail-grid h1{margin:12px 0 20px}
.notice{padding:15px 18px;border-left:3px solid #e4b841;background:#fff9e8;color:#766334;font-size:12px;border-radius:5px;margin:20px 0}
.source-link{display:flex;gap:10px;align-items:center;padding:14px;border-bottom:1px solid #eaf0f0;color:#167952}
.source-link span{margin-left:auto;font-size:12px;color:#7f9187}
.section-space{margin-top:25px}
.narrow{max-width:820px}
.empty{text-align:center;padding:55px 25px;color:#667e8a}
.empty>.icon{width:45px;height:45px;color:#75a596;margin-bottom:15px}
.empty h2,.empty h3{color:#345969}
.empty p{font-size:13px}
.empty .button{margin-top:15px}
label{display:block;font-size:13px;font-weight:600;margin-bottom:16px}
input:not([type=checkbox]):not([type=file]),select,textarea{display:block;width:100%;padding:11px 12px;background:#fff;border:1px solid #d6e2e7;border-radius:6px;color:#1e4058;margin-top:7px;min-width:0}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{border-color:#16946c;box-shadow:0 0 0 3px #13966914}
button:disabled{opacity:.6;cursor:wait}
.auth-stage{min-height:770px;padding:40px 8%;background:linear-gradient(90deg,#e6f4ff99,#ffffff20),url('/assets/banners-clean/auth-login-background-1086.webp') center 60%/cover;position:relative}
.auth-intro{max-width:850px}
.auth-intro h1{font-size:34px;margin:10px 0}
.auth-intro p{font-size:14px}
.auth-card{margin:28px auto 0;background:white;padding:32px 40px;border-radius:13px;box-shadow:0 15px 55px #14384726;max-width:480px}
.auth-card h2{text-align:center;font-size:26px;margin:0 0 8px}
.auth-card>p{text-align:center;font-size:12px}
.auth-card label{font-size:12px}
.auth-switch{margin:20px 0 0}
.auth-switch a,.forgot{color:#088753;font-weight:600}
.forgot{display:block;text-align:right;font-size:12px;margin:-5px 0 20px}
.register-stage{background-image:linear-gradient(90deg,#eaf6ffba,#ffffff35),url('/assets/banners-clean/auth-register-background-1086.webp')}
.form-error{color:#b63232;font-size:12px;margin:12px 0;white-space:pre-wrap}
.trace-layout,.analysis-layout{display:grid;grid-template-columns:350px 1fr;gap:25px;min-height:460px}
.trace-layout>section,.analysis-layout>section{align-self:start}
#qr-video{width:100%;margin-top:20px}
.content-page{padding:40px;min-height:400px}
.content-page>p{max-width:950px;font-size:15px}
.stats-cards,.dashboard-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:25px 0}
.stats-cards>div,.dashboard-stats>a{background:white;border:1px solid #d9e7e4;border-radius:10px;padding:22px;display:flex;flex-direction:column}
.stats-cards strong,.dashboard-stats strong{font-size:30px;color:#08835d}
.stats-cards span,.dashboard-stats span{font-size:12px;color:#607d72}
#main-map{position:absolute;inset:0}
.check{display:flex;align-items:center;gap:8px;font-size:12px}
.commune-list{max-height:42vh;overflow:auto;margin:15px 0}
.commune-list button{display:block;width:100%;text-align:left;padding:10px 12px;border:0;border-bottom:1px solid #e8eeee;background:white;color:#235349;font-size:12px}
.commune-list button:hover{background:#eaf7f0}
.map-selection{position:absolute;left:20px;top:20px;max-width:320px}
.map-selection h3{margin:0 0 10px}
.workspace{display:grid;grid-template-columns:245px 1fr;min-height:calc(100vh - 88px)}
.workspace-sidebar{background:linear-gradient(#064c3d,#083a33);color:#e4f5ee;padding:18px 0}
.workspace-sidebar>h3{padding:0 20px 15px;font-size:12px;border-bottom:1px solid #ffffff25}
.workspace-sidebar>a{display:flex;gap:12px;padding:10px 20px;align-items:center;font-size:12px;border-left:3px solid transparent}
.workspace-sidebar>a:hover,.workspace-sidebar>a.active{background:#ffffff14;border-left-color:#56d8ac}
.workspace-sidebar>a.active{color:#a6f3d5}
.workspace-sidebar .icon{width:17px;height:17px}
.workspace-main{padding:24px;min-width:0}
.workspace-switch{padding:25px 18px}
.workspace-switch label{font-size:11px}
.workspace-switch .button{font-size:11px}
.dashboard-banner{padding:35px;color:white;border-radius:12px;min-height:200px;background:linear-gradient(90deg,#003d35d9,#00251410),url('/assets/banners-clean/portal-green-header-2172.webp') center 40%/cover}
.dashboard-banner h1{margin:14px 0;font-size:28px}
.dashboard-banner p{max-width:480px}
.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:22px}
.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.quick-grid a{display:flex;gap:12px;padding:16px;border:1px solid #dceae2;border-radius:8px;align-items:center;font-size:12px;color:#146245;background:#f6fbf7}
.dashboard-map{display:flex;align-items:center;justify-content:center;height:290px;background:#eaf4f6;border-radius:10px;color:#11664e;font-weight:600}
.dashboard-map img{height:100%;max-width:60%}
.table-scroll{overflow:auto}
table{border-collapse:collapse;width:100%;font-size:12px}
th,td{padding:13px 12px;text-align:left;border-bottom:1px solid #e4ebee}
th{color:#31576a;background:#f0f6f8;font-size:11px;white-space:nowrap}
td:first-child{min-width:200px}
.status{font-size:10px;padding:4px 7px;border-radius:4px;background:#edf5f1;color:#138652;white-space:nowrap}
.table-action{border:1px solid #bfded0;background:#f3faf7;color:#187448;border-radius:4px;padding:5px 8px;margin:3px;font-size:10px}
.workspace-main h1{font-size:25px;margin:7px 0}
.workspace-main .eyebrow{color:#699080}
.profile{display:grid;grid-template-columns:160px 1fr;gap:15px}
.profile dt{color:#708b80}
.profile dd{margin:0}
.narrow-form{max-width:500px}
dialog{border:0;border-radius:14px;box-shadow:0 20px 100px #0b302955;width:min(650px,95vw);max-height:90vh;padding:28px;color:#153d4c}
dialog::backdrop{background:#102a4470;backdrop-filter:blur(3px)}
.icon-button{border:0;background:#edf4f0;border-radius:50%;width:34px;height:34px;font-size:24px;color:#426a58}
#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#153f36;color:white;border-radius:8px;padding:13px 25px;z-index:1000;display:none;box-shadow:0 4px 24px #0003;max-width:90vw}
.news-row{border-top:1px solid #e3edeb;padding:20px 0}
.news-row h2{font-size:19px}
.integration-status{padding:15px;border:1px solid #d9e8e2;border-radius:8px;margin:12px 0}
@media(min-width:1700px){.catalog-products{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media(max-width:1300px){.site-header{gap:15px}
.main-nav{gap:12px}
.main-nav a{font-size:10px}
.brand{min-width:200px}
.header-actions{gap:8px}
.language{display:none}
.home-grid{grid-template-columns:1.4fr 1fr}
.home-products{grid-template-columns:repeat(3,1fr)}
.home-products .product-card:nth-child(n+4){display:none}
.catalog-products{grid-template-columns:repeat(3,1fr)}
.home-bottom{grid-template-columns:1.5fr 1fr}
.join-teaser{display:none}
.hero-signature{font-size:38px}
.stats-strip{gap:8px}
.stat{padding-left:7px}
.stat strong{font-size:20px}
}
@media(max-width:1000px){.main-nav{display:none;position:absolute;top:78px;left:0;right:0;background:white;padding:20px;flex-wrap:wrap;box-shadow:0 10px 25px #0002}
.main-nav.open{display:flex}
.main-nav a{font-size:13px;padding:12px}
.mobile-menu{display:block;margin-left:auto;background:white;border:0;color:#16664e}
.site-header{height:78px}
.hero-inner{padding:35px}
.hero-signature{display:none}
.home-grid{grid-template-columns:1fr}
.home-products{grid-template-columns:repeat(5,1fr)}
.home-products .product-card:nth-child(n+4){display:block}
.stats-strip{grid-template-columns:repeat(3,1fr)}
.stat:nth-child(n+4){display:none}
.catalog-layout{grid-template-columns:210px 1fr}
.catalog-products{grid-template-columns:repeat(2,1fr)}
.workspace{grid-template-columns:200px 1fr}
.workspace-main{padding:18px}
.workspace-sidebar>a{font-size:11px;padding:10px}
.dashboard-grid{grid-template-columns:1fr}
.dashboard-stats{grid-template-columns:repeat(2,1fr)}
.banner-signature{display:none}
.page-banner h1{font-size:25px}
.footer-content{gap:20px}
.analysis-layout,.trace-layout{grid-template-columns:300px 1fr}
}
@media(max-width:650px){.site-header{height:70px;padding:0 15px}
.brand{min-width:0;gap:6px}
.brand strong{font-size:25px}
.brand em{font-size:11px}
.brand-symbol{width:32px}
.brand-symbol .icon{width:30px}
.brand small{display:none}
.header-actions>a:first-child{display:none}
.header-actions .button{font-size:0;padding:9px}
.header-actions .button .icon{width:19px}
.main-nav{top:70px}
.hero-inner{padding:30px 22px}
.hero-copy h1{font-size:43px}
.hero-copy h2{font-size:15px}
.hero-script{font-size:32px}
.hero-copy p{font-size:12px}
.hero-search input{font-size:11px}
.hero-search button{font-size:11px;padding:9px 14px}
.hero-shortcuts{flex-wrap:wrap;gap:7px}
.hero-shortcuts a{font-size:10px;padding:7px 9px}
.home-hero{min-height:390px}
.hero-caption{font-size:8px}
.stats-strip{padding:14px 10px;gap:5px}
.stat{gap:6px}
.stat>.icon{width:24px;height:24px}
.stat strong{font-size:18px}
.stat span{font-size:8px}
.container{padding:20px 14px}
.panel{padding:17px;border-radius:9px}
.section-heading h2{font-size:13px}
.section-heading>a{font-size:10px}
.home-products{grid-template-columns:repeat(2,1fr)}
.home-products .product-card:last-child{display:none}
.product-info{padding:10px}
.home-products .product-name{font-size:12px}
.home-grid{gap:16px}
.home-bottom{grid-template-columns:1fr;gap:16px}
.category-grid{gap:8px}
.category-grid span{width:47px;height:47px}
.category-grid .icon{width:28px}
.footer-content{grid-template-columns:1fr 1fr;padding:25px 20px;gap:25px;font-size:11px}
.footer-bottom{font-size:9px}
.page-banner{height:180px;padding:25px 20px}
.page-banner h1{font-size:23px}
.page-banner p{font-size:13px}
.page-banner .eyebrow{font-size:8px}
.catalog-layout{display:block}
.filters{position:static;margin-bottom:20px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.filters h3,.filters .muted{grid-column:1/-1}
.filters label{margin:0}
.filters .button{align-self:end}
.catalog-products{gap:11px}
.product-name{font-size:12px}
.subject-card{padding:14px}
.subject-card h3{font-size:13px}
.detail-grid{grid-template-columns:1fr;padding:20px;gap:20px}
.detail-image{height:280px}
.detail-grid h1{font-size:25px}
.product-grid{grid-template-columns:repeat(2,1fr)}
.auth-stage{padding:25px 15px}
.auth-intro h1{font-size:25px}
.auth-intro p{font-size:12px}
.auth-card{padding:25px}
.trace-layout,.analysis-layout{grid-template-columns:1fr}
.content-page{padding:22px}
.content-page h1{font-size:25px}
.stats-cards{grid-template-columns:repeat(2,1fr)}
.commune-list{display:none}
.workspace{display:block}
.workspace-sidebar{display:flex;overflow:auto;align-items:center;padding:0;height:52px;position:sticky;top:0;z-index:5}
.workspace-sidebar h3,.workspace-switch{display:none}
.workspace-sidebar>a{white-space:nowrap;flex-shrink:0;height:52px;font-size:11px;border-left:0;border-bottom:3px solid transparent}
.workspace-sidebar>a.active{border-bottom-color:#55d7ad}
.workspace-main{padding:15px}
.workspace-main .section-heading{flex-wrap:wrap}
.workspace-main h1{font-size:21px}
.dashboard-banner{padding:25px;min-height:180px}
.dashboard-banner h1{font-size:24px}
.dashboard-banner p{font-size:12px}
.quick-grid{grid-template-columns:1fr 1fr}
.quick-grid a{padding:12px;font-size:11px}
.profile{grid-template-columns:1fr;gap:5px}
.profile dd{margin-bottom:15px;word-break:break-all}
}
.trace-event{display:flex;gap:20px;text-align:left;border-left:2px solid #d4e8da;padding:15px 20px;margin:0 20px}
.trace-event>b{background:#05875b;color:white;display:flex;align-items:center;justify-content:center;border-radius:50%;width:35px;height:35px;margin-left:-38px;flex-shrink:0}
.trace-event h3{margin:0}
.trace-event p{margin:5px 0}
.trace-event small{color:#748b82}
.seg{display:flex;border:1px solid #cfe0d8;border-radius:8px;overflow:hidden;margin-bottom:14px}
.seg button{flex:1;border:0;background:#fff;padding:9px 4px;font-size:12px;font-weight:600;color:#2c5a49}
.seg button.on{background:#0b7a52;color:#fff}
.btn-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.btn-pair .button{font-size:12px;padding:10px}
.mapboxgl-popup-content{border-radius:10px;padding:12px}
.main-nav{gap:15px}
.main-nav a{font-size:11.5px}
@media(max-width:1500px){.main-nav{gap:10px}
.main-nav a{font-size:10.5px}
.brand{min-width:190px}
}
.site-header{gap:12px;padding:0 1.2%}
.brand{min-width:170px}
.main-nav{gap:11px}
.main-nav a{font-size:11px}
.language{display:none}
.header-actions{gap:10px}
.brand{min-width:0}
.brand img{height:68px;width:auto;display:block}
@media(max-width:650px){.brand img{height:48px}
}
.brand{margin-left:10px}
/* ===== Menu & footer (rà soát) ===== */
.site-header{position:sticky;top:0;z-index:50;box-shadow:0 2px 10px #12304512}
.page-banner{position:relative;z-index:1}
.header-actions .button.compact{max-width:210px;overflow:hidden;text-overflow:ellipsis}
.mobile-menu{display:none;margin-left:auto;background:#fff;border:1px solid #d6e2e7;border-radius:8px;width:42px;height:42px;color:#16664e;align-items:center;justify-content:center}
.mobile-menu .icon{width:24px;height:24px}
/* Thu gọn menu khi chiều rộng không đủ cho 13 mục */
@media(max-width:1400px){
 .site-header{height:76px;gap:14px}
 .mobile-menu{display:inline-flex}
 .main-nav{display:none;position:absolute;top:76px;left:0;right:0;background:#fff;padding:14px 24px 20px;flex-wrap:wrap;gap:6px 6px;box-shadow:0 14px 28px #0a2a3a30;border-top:1px solid #e4eceb;max-height:calc(100vh - 76px);overflow:auto}
 .main-nav.open{display:flex}
 .main-nav a{font-size:13px;padding:10px 16px;border-radius:8px;background:#f4f8f6;flex:0 0 auto}
 .main-nav a.active{background:#d9f0e3;color:#06573a}
 .main-nav a.active:after{display:none}
 .header-actions{margin-left:0}
 .brand img{height:56px}
}
@media(max-width:650px){.site-header{height:64px;padding:0 12px}
.main-nav{top:64px;padding:10px 12px 16px}
.main-nav a{flex:1 1 calc(50% - 6px);text-align:center}
.brand img{height:44px}
.header-actions .button.compact{font-size:0;padding:9px}
.header-actions>a:first-child{display:none}
}
.site-footer{background:linear-gradient(#ffffffe6,#fffffff0),url('/assets/banners-clean/home-footer-2172.webp') center 65%/cover;margin-top:30px;border-top:1px solid #dde8e8}
.footer-content{max-width:1500px;display:grid;grid-template-columns:1.3fr 1fr 1.1fr 1.5fr;gap:36px;padding:36px 40px 26px;margin:auto;font-size:12.5px}
.fcol h4{margin:0 0 12px;font-size:13px;color:#0f3b2d}
.fcol>a{display:block;margin:7px 0;color:#2d4c40}
.fcol>a:hover{color:#0b8a5c}
.brand-col p{color:#456;margin:6px 0 0;line-height:1.6}
.fline{display:flex;gap:8px;align-items:flex-start;margin:7px 0;color:#2d4c40}
.fline .icon{width:16px;height:16px;color:#0b8a5c;margin-top:2px}
.fline a{color:#0b6a45;font-weight:600}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;max-width:1500px;margin:auto;padding:12px 40px;border-top:1px solid #dce6df;color:#587468;font-size:11px;text-align:left}
@media(max-width:1000px){.footer-content{grid-template-columns:1fr 1fr;padding:26px 22px 16px}
.footer-bottom{padding:12px 22px}
}
@media(max-width:650px){.footer-content{grid-template-columns:1fr;gap:18px}
}
@media(max-width:1400px){.ws{min-height:calc(100vh - 76px)}
}
.footer-brand img{mix-blend-mode:multiply}
#main-map.svg-fallback{background:#e8f3f1}


/* Tài liệu hướng dẫn sử dụng (/huong-dan) */
.manual{display:grid;grid-template-columns:260px minmax(0,1fr);gap:28px;max-width:1240px;margin:24px auto 40px;padding:0 16px}
.manual-toc{position:sticky;top:84px;align-self:start;background:#fff;border:1px solid #e3ebe8;border-radius:16px;padding:14px;max-height:calc(100vh - 110px);overflow:auto}
.manual-toc nav{display:grid;gap:2px;margin:8px 0 12px}.manual-toc nav a{padding:6px 8px;border-radius:8px;color:#264136;text-decoration:none;font-size:13.5px}.manual-toc nav a:hover{background:#eef7f2;color:#0b6a45}
.manual-body{min-width:0}.manual-head{background:linear-gradient(120deg,#0b6a45,#169168);color:#fff;border-radius:18px;padding:26px 28px;margin-bottom:18px}
.manual-head h1{margin:6px 0 8px;font-size:30px;color:#fff}.manual-head p{margin:0 0 6px;opacity:.95;max-width:820px}.manual-head .eyebrow{color:#cdeedd}
.manual-quick{background:rgba(255,255,255,.14);padding:8px 12px;border-radius:10px;display:inline-block}
.manual-chap{background:#fff;border:1px solid #e3ebe8;border-radius:18px;padding:20px 24px;margin-bottom:16px;scroll-margin-top:84px}
.manual-chap h2{margin:0 0 10px;color:#0b6a45;font-size:22px}.manual-sec{margin:14px 0 4px}.manual-sec h3{font-size:16.5px;margin:0 0 6px;color:#17354c}
.manual-sec p,.manual-sec li{font-size:14.5px;line-height:1.6;color:#2c4a5c}.manual-sec ol{margin:4px 0;padding-left:22px}.manual-sec li{margin:3px 0}
.manual-sec figure{margin:10px 0 4px}.manual-sec img{width:100%;border-radius:12px;border:1px solid #dfe9e4;box-shadow:0 4px 16px rgba(0,0,0,.06)}.manual-sec figcaption{font-size:12.5px;color:#6a8177;margin-top:4px}
.manual-note{background:#fff6e8;border-left:4px solid #f0a63a;padding:10px 14px;border-radius:8px;font-size:14px}
.manual-intro{background:#eef7f2;border-radius:12px;padding:10px 14px;font-size:14.5px;line-height:1.6;color:#264136;margin:0 0 6px}
.manual-sec ul{margin:4px 0;padding-left:22px}.manual-sec .table-scroll{overflow-x:auto;margin:8px 0}.manual-sec table.dt{width:100%;font-size:13.5px}
.manual-figs{display:grid;gap:10px;margin-top:10px}.manual-figs.n2,.manual-figs.n3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.manual-figs figure{margin:0}.manual-cap{display:block;font-size:12.5px;color:#6a8177;margin-top:4px}
.manual-foot{text-align:center;color:#6a8177}.guide-more{margin:4px 0 0;font-size:13.5px}
@media(max-width:900px){.manual{grid-template-columns:1fr}.manual-toc{position:static;max-height:none}}
@media print{.site-header,.site-footer,.manual-toc,#toast{display:none!important}.manual{display:block;margin:0;padding:0}.manual-chap{break-inside:auto;border:0;padding:0 0 10px}.manual-head{background:none;color:#000;padding:0}.manual-head h1{color:#000}.manual-sec figure{break-inside:avoid}.manual-figs{display:block}.manual-figs figure{margin-bottom:8px}.manual-sec img{max-height:420px;object-fit:contain}}
