:root{--fg:#1a1a1a;--mu:#6b6b6b;--bd:#e3e3e3;--bg:#fff;--soft:#f6f6f4;--ac:#1f5fbf;--ok:#1e7a3c;--warn:#a86400;--err:#b3261e}
[hidden]{display:none!important}
*{box-sizing:border-box}
body{margin:0;font:15px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--fg);background:var(--bg)}
nav{position:sticky;top:0;background:var(--bg);border-bottom:1px solid var(--bd);padding:8px 16px;font-size:13px;overflow-x:auto;white-space:nowrap;z-index:9}
nav a{color:var(--mu);text-decoration:none;margin-right:14px}nav a:hover{color:var(--ac)}
main{max-width:680px;margin:0 auto;padding:0 16px 80px}
section{padding:40px 0 24px;border-bottom:1px dashed var(--bd)}
.tag{font-size:12px;color:var(--mu);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px}
h1{font-size:22px;margin:0 0 6px}h2{font-size:17px;margin:22px 0 8px}
p{margin:6px 0}a{color:var(--ac)}
.mu{color:var(--mu);font-size:13px}
.box{border:1px solid var(--bd);border-radius:10px;padding:16px;margin:12px 0}
.soft{background:var(--soft);border:0}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.who{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 4px}
.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--bd);border-radius:99px;padding:3px 10px;font-size:13px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--ok)}.dot.busy{background:var(--warn)}.dot.off{background:#aaa}
input,select,textarea{font:inherit;padding:8px 10px;border:1px solid #cfcfcf;border-radius:8px;width:100%}
label{display:block;margin:10px 0 4px;font-size:14px}
.drop{border:1.5px dashed #bdbdbd;border-radius:10px;padding:22px;text-align:center;color:var(--mu)}
button{font:inherit;padding:9px 16px;border-radius:8px;border:1px solid var(--fg);background:var(--fg);color:#fff;cursor:pointer}
button.ghost{background:#fff;color:var(--fg);border-color:#cfcfcf}
.note{border-left:3px solid var(--warn);background:#fdf6ec;padding:10px 12px;border-radius:0 8px 8px 0;margin:12px 0}
.steps{list-style:none;padding:0;margin:8px 0}
.steps li{padding:5px 0 5px 26px;position:relative}
.steps li:before{content:"";position:absolute;left:4px;top:11px;width:10px;height:10px;border-radius:50%;border:2px solid #bbb}
.steps li.done:before{background:var(--ok);border-color:var(--ok)}
.steps li.now:before{border-color:var(--ac);background:#fff;box-shadow:0 0 0 3px #dbe7fb}
.steps li.now{font-weight:600}
.log{list-style:none;padding:0;margin:0;font-size:14px}
.log li{padding:7px 0;border-top:1px solid var(--bd);display:grid;grid-template-columns:52px 1fr;gap:8px}
.log time{color:var(--mu);font-size:12px;padding-top:2px}
.w{color:var(--warn)}.e{color:var(--err)}.g{color:var(--ok)}
table{width:100%;border-collapse:collapse;font-size:14px}td{padding:6px 0;border-top:1px solid var(--bd)}td:last-child{text-align:right;white-space:nowrap}
tr.t td{font-weight:700;border-top:2px solid var(--fg)}
.opt{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--bd)}.opt input{width:auto;margin-top:4px}
.opt small{display:block;color:var(--mu)}
label.ck{display:flex;align-items:center;gap:8px;margin:4px 0;font-size:15px;cursor:pointer}label.ck input{width:auto;margin:0}
.map{height:200px;border-radius:10px;background:#eef1ec;border:1px solid var(--bd);position:relative;overflow:hidden}
.thumbs{display:flex;gap:8px}.thumbs div{width:90px;height:64px;border:1px solid var(--bd);border-radius:6px;background:var(--soft);font-size:11px;color:var(--mu);display:flex;align-items:end;padding:4px}
.thumbs div.sel{outline:2px solid var(--ac)}
.qr{width:150px;height:150px;background:repeating-conic-gradient(#000 0 25%,#fff 0 50%) 0 0/18px 18px;border:6px solid #fff;outline:1px solid var(--bd)}
.mail{border:1px solid var(--bd);border-radius:10px;padding:10px 14px;margin:8px 0;font-size:14px}
.mail b{display:block}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:14px}
.kv span:nth-child(odd){color:var(--mu)}
.term{background:#111;color:#ddd;font:12px/1.5 ui-monospace,Consolas,monospace;padding:12px;border-radius:8px;white-space:pre-wrap}
.top{display:flex;justify-content:space-between;align-items:center;padding:14px 0 0}
.brand{font-weight:700}
.btn-sm{font-size:13px;padding:5px 12px}
.login{display:flex;flex-direction:column;gap:10px;max-width:320px}
.login button{display:flex;gap:10px;align-items:center;justify-content:center}
.orders .o{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:12px 0;border-top:1px solid var(--bd)}
.orders .o .mu{grid-column:1/-1}
.badge{font-size:12px;border-radius:99px;padding:2px 9px;background:var(--soft);white-space:nowrap}
.badge.b{background:#eef4fd;color:var(--ac)}.badge.y{background:#fdf6ec;color:var(--warn)}.badge.gr{background:#eaf5ee;color:var(--ok)}
.perm{border:1px solid var(--bd);border-radius:12px;padding:16px;box-shadow:0 6px 24px rgba(0,0,0,.08);max-width:380px}
.chat{border:1px solid var(--bd);border-radius:10px;margin:12px 0;overflow:hidden}
.chat .hd{padding:10px 14px;border-bottom:1px solid var(--bd);display:flex;justify-content:space-between;font-size:14px}
.chat .ms{padding:12px 14px;display:flex;flex-direction:column;gap:8px;font-size:14px;max-height:340px;overflow:auto}
.m{max-width:80%;padding:8px 12px;border-radius:12px;background:var(--soft)}
.m.me{align-self:flex-end;background:var(--fg);color:#fff}
.m small{display:block;font-size:11px;opacity:.65;margin-bottom:2px}
.chat .in{display:flex;gap:8px;padding:10px;border-top:1px solid var(--bd)}
.run{border:1px solid var(--bd);border-radius:10px;padding:12px 14px;margin:8px 0}
.run .hd{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.bar{display:flex;gap:4px;margin:8px 0 4px}.bar i{flex:1;height:5px;border-radius:3px;background:#e6e6e6}.bar i.d{background:var(--ok)}.bar i.n{background:var(--ac)}
.tabs{display:flex;gap:16px;border-bottom:1px solid var(--bd)}.tabs span{padding:6px 0;font-size:13px;color:var(--mu)}.tabs span.on{color:var(--fg);border-bottom:2px solid var(--fg)}
.flow{font-size:14px;counter-reset:f;list-style:none;padding:0}.flow li{padding:4px 0 4px 28px;position:relative}.flow li:before{counter-increment:f;content:counter(f);position:absolute;left:0;top:5px;width:19px;height:19px;border-radius:50%;background:var(--soft);font-size:12px;text-align:center;line-height:19px}
/* trang dự án cũ */
.nho{color:var(--mu);font-size:13px}#map{height:320px;border:1px solid var(--bd);border-radius:10px;margin:8px 0}
main{padding-top:16px}
.prog{height:6px;background:#eee;border-radius:3px;overflow:hidden;margin:8px 0}.prog i{display:block;height:100%;background:var(--ac)}
button:disabled{opacity:.5;cursor:default}
details{margin:2px 0}summary{cursor:pointer}details details{margin-left:18px}details ul{margin:2px 0 6px;padding-left:22px}
.err{color:var(--err)}

/* ---- giao diện 11/2026: trang chủ phương án 2, trang đơn phương án A ---- */
@keyframes nhip{0%{box-shadow:0 0 0 0 rgba(31,95,191,.45)}70%{box-shadow:0 0 0 10px rgba(31,95,191,0)}100%{box-shadow:0 0 0 0 rgba(31,95,191,0)}}
.song{width:10px;height:10px;border-radius:50%;background:var(--ac);display:inline-block;animation:nhip 1.6s infinite;flex:none}
.song.nho{width:7px;height:7px}
@keyframes chay{from{background-position:0 0}to{background-position:40px 0}}
.vach{height:6px;border-radius:9px;background:repeating-linear-gradient(45deg,#dbe7fb 0 10px,#c3d6f5 10px 20px);animation:chay 1s linear infinite}
.tien{height:6px;border-radius:9px;background:var(--bd);overflow:hidden}.tien i{display:block;height:100%;background:var(--ac);border-radius:9px;transition:width .4s}
.hang{display:flex;gap:6px;align-items:center;margin:10px 0}.hang i{min-width:28px;height:28px;padding:0 6px;border-radius:6px;background:var(--soft);border:1px solid var(--bd);display:flex;align-items:center;justify-content:center;font-size:11px;font-style:normal;color:var(--mu)}
.hang i.ban{background:#fff4e0;border-color:#f0d29a}.hang i.toi{background:var(--ac);color:#fff;border-color:var(--ac)}
.tim{font-variant-numeric:tabular-nums}
.chonFile{display:block;border:1.5px dashed #bdbdbd;border-radius:14px;padding:46px 20px;text-align:center;cursor:pointer;background:#fcfcfb;transition:.15s}
.chonFile:hover,.chonFile.keo{border-color:var(--ac);background:#f3f7fd}
.chonFile b{display:block;font-size:17px;margin-bottom:4px}.chonFile input{display:none}
.dsDon .don{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--bd);align-items:center}.dsDon .don:first-child{border-top:0}
.dsDon .don img,.dsDon .don .noImg{width:56px;height:56px;object-fit:cover;border-radius:8px;border:1px solid var(--bd);flex:none;background:var(--soft)}
.dsDon .don .nd{flex:1;min-width:0;color:inherit;text-decoration:none}.dsDon .don .nd b{font-size:14px;word-break:break-all}.dsDon .don .nd .mu{display:block}
.day{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--bd);padding:10px 0;margin-top:14px;display:flex;justify-content:space-between;align-items:center;gap:12px;z-index:4}
.hai{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}@media(max-width:680px){.hai{grid-template-columns:1fr}}
.xt{border:1px solid var(--bd);border-radius:12px;overflow:hidden;background:var(--soft);display:flex;align-items:center;justify-content:center;min-height:200px}
.xt img,.xt canvas{max-width:100%;max-height:440px;display:block}
@media (max-width:560px){.xt{min-height:180px;height:260px}.xt img,.xt canvas{max-height:256px}.dsTrang{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}}
.dsTrang label.dangXem{box-shadow:0 0 0 2px var(--ac)}
.dsTrang{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin-top:8px}
.dsTrang label{margin:0;border:1px solid var(--bd);border-radius:8px;overflow:hidden;cursor:pointer;font-size:12px;background:#fff}
.dsTrang label.on{border:2px solid var(--fg)}.dsTrang canvas{width:100%;min-height:70px;display:block;background:var(--soft)}
.dsTrang span{display:flex;gap:5px;align-items:center;padding:4px 6px}.dsTrang input{width:auto;margin:0}
/* trang đơn */
.tl{border-left:2px solid var(--bd);margin:12px 0 0 6px;padding-left:20px}
.tl .b{position:relative;padding:0 0 20px}
.tl .b:before{content:"";position:absolute;left:-27px;top:4px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid #c9c9c9}
.tl .b.x:before{background:var(--ok);border-color:var(--ok)}.tl .b.n:before{border-color:var(--ac);box-shadow:0 0 0 4px #dbe7fb}.tl .b.e:before{border-color:var(--err)}
.tl .b h3{font-size:15px;margin:0 0 4px}.tl .b p{margin:2px 0}.tl .b img{width:100%;max-width:540px;border:1px solid var(--bd);border-radius:10px;display:block;margin-top:8px;background:#fff}
.vong{font-size:13px;font-weight:700;color:var(--mu);text-transform:uppercase;letter-spacing:.04em;margin:20px 0 4px}
.ck{width:16px;height:16px;border-radius:50%;border:2px solid #c9c9c9;flex:none;display:inline-block}.ck.x{background:var(--ok);border-color:var(--ok)}.ck.n{border-color:var(--ac)}
.fl{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-top:1px solid var(--bd)}.fl:first-child{border-top:0}
.fl .ic{width:32px;height:38px;border:1px solid #d6d6d6;border-radius:3px 9px 3px 3px;background:#fafafa;flex:none;display:flex;align-items:flex-end;justify-content:center;padding-bottom:5px;font-size:8.5px;font-weight:600;color:#999;letter-spacing:.03em}
.fl .nd{flex:1;min-width:0}.fl .nd b{font-size:14px;cursor:pointer}.fl .nd small{display:block;color:var(--mu);font-size:12.5px}
.fl .nd small.mt{display:none}.fl.mo .nd small.mt,.dsf.moHet .nd small.mt{display:block}
.nen{font-size:11px;background:#e7f3ea;color:var(--ok);border-radius:99px;padding:1px 8px;margin-left:6px;font-weight:600}
.ycBtn{display:flex;gap:10px;flex-wrap:wrap}.ycBtn button{flex:1;min-width:200px;text-align:left;padding:12px 14px}.ycBtn button small{display:block;font-size:12px;opacity:.75;font-weight:400}
label.ck2{display:flex;align-items:center;gap:8px;margin:4px 0;font-size:15px;font-weight:400}label.ck2 input{width:auto;margin:0}
.xoa{background:var(--err)!important;border-color:var(--err)!important}

/* trao đổi kiểu chat, mới nhất ở trên */
.chatTl{display:flex;flex-direction:column;gap:10px;margin:8px 0}
.tin{max-width:88%}.tin small{display:block;color:var(--mu);font-size:12px;margin:0 0 2px 2px}
.tin .bong{background:var(--soft);border-radius:4px 12px 12px 12px;padding:8px 12px;font-size:14px}
.tin .bong img{display:block;max-width:100%;margin-top:8px;border-radius:8px;border:1px solid var(--bd)}
.tin .bong.g{background:#eaf5ee}.tin .bong.w{background:#fdf6ec}.tin .bong.e{background:#fdf3f2}
.tin.ban{align-self:flex-end}.tin.ban small{text-align:right}.tin.ban .bong{background:#eef4fd;border-radius:12px 4px 12px 12px}

/* cây file theo phiên bản, xem ảnh từng lớp, file đính kèm */
.pb{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}.pb button{padding:5px 11px;font-size:13px;background:#fff;color:var(--fg);border-color:#cfcfcf}.pb button.on{background:var(--fg);color:#fff}
.cayF{border:1px solid var(--bd);border-radius:12px;overflow:hidden}
.cayF .goc{display:flex;gap:12px;align-items:center;padding:12px 14px;background:var(--soft)}
.cayF .ic{width:34px;height:40px;border:1px solid #d6d6d6;border-radius:3px 9px 3px 3px;background:#fff;display:flex;align-items:flex-end;justify-content:center;padding-bottom:5px;font-size:8.5px;font-weight:600;color:#999;flex:none}
.cayF .lop{display:flex;gap:12px;align-items:center;padding:9px 14px 9px 30px;border-top:1px solid var(--bd);position:relative;cursor:pointer}
.cayF .lop:before{content:"";position:absolute;left:16px;top:0;bottom:50%;border-left:1.5px solid #ccc;border-bottom:1.5px solid #ccc;width:8px}
.cayF .lop:hover{background:#fafafa}.cayF .lop img,.cayF .lop .noImg{width:64px;height:46px;object-fit:contain;border:1px solid var(--bd);border-radius:6px;flex:none;background:#fff}
.cayF .lop .nd{flex:1;min-width:0}.cayF .lop .nd small{display:block;color:var(--mu);font-size:12.5px}
.xemLop{position:fixed;inset:0;background:rgba(0,0,0,.75);display:none;align-items:center;justify-content:center;z-index:9999;padding:16px}
.xemLop.on{display:flex}.xemLop .k{background:#fff;border-radius:12px;max-width:900px;width:100%;padding:14px;max-height:94vh;overflow:auto}.xemLop img{width:100%;max-height:70vh;object-fit:contain;border-radius:8px;background:#f7f7f7}
.tabLop{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.tabLop button{padding:4px 10px;font-size:13px;background:#fff;color:var(--fg);border-color:#cfcfcf}.tabLop button.on{background:var(--fg);color:#fff}
.dinh{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--bd);border-radius:8px;padding:3px 8px;font-size:13px;background:#fff;margin:4px 4px 0 0}
.chipC{display:inline-block;border:1px solid #cfcfcf;border-radius:99px;padding:5px 12px;font-size:13px;margin:3px 4px 3px 0;cursor:pointer;background:#fff;user-select:none}.chipC.on{background:var(--fg);color:#fff;border-color:var(--fg)}
/* tùy chọn có cách làm (báo giá) */
.tcK{border:1px solid var(--bd);border-radius:12px;padding:12px 14px;margin:10px 0}
.tcK.tat{opacity:.55}.tcK.tat2 .tcMo{margin-bottom:0}
.tcH{display:flex;align-items:center;gap:8px;margin:0;font-weight:600;cursor:pointer}
.tcH input{width:auto;margin:0}.tcK.tat .tcH{cursor:default}
.tcH .gia{margin-left:auto;text-align:right;white-space:nowrap}.tcH .gia small{display:block;font-weight:400;color:var(--mu);font-size:12px}
.tcMo{color:var(--mu);font-size:13px;margin:2px 0 6px 26px}
.tcC{display:flex;gap:10px;align-items:flex-start;padding:7px 8px;border-radius:8px;cursor:pointer;margin:2px 0 2px 18px;font-weight:400}
.tcC:hover{background:rgba(0,0,0,.03)}.tcC input{width:auto;margin-top:4px}
.tcC small{display:block;color:var(--mu)}.tcC .p{margin-left:auto;white-space:nowrap;font-size:13.5px}
.tcBo{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 4px 26px}
.chip2{border:1px solid var(--bd);border-radius:16px;padding:4px 11px;font-size:13px;cursor:pointer;user-select:none}
.chip2.on{background:var(--fg);color:var(--bg,#fff);border-color:var(--fg)}.chip2.off{opacity:.4;cursor:not-allowed;text-decoration:line-through}
.doTin{font-size:11px;padding:1px 7px;border-radius:9px;background:#eef2ee;color:#4a6a4a;font-weight:500}
.doTin.v{background:#f6f0e2;color:#8a6a20}.doTin.t{background:#f3e9e9;color:#8a4040}
.qhDs{display:flex;flex-direction:column;gap:6px;margin:4px 0 12px}
.qhO{display:flex;gap:10px;align-items:center;border:1px solid var(--bd);border-radius:10px;padding:8px 10px;cursor:pointer;margin:0;font-weight:400}
.qhO.on{border-color:var(--fg);box-shadow:0 0 0 1px var(--fg)}.qhO svg{flex:none;color:#888}.qhO.on svg{color:var(--fg)}
.qhO small{display:block;color:var(--mu,#777);font-size:12.5px;margin-top:1px}
.dsVai{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.vaiT{display:flex;gap:10px;align-items:center;border:1px solid var(--bd);border-radius:8px;padding:6px 8px}
.vaiT.bo{opacity:.6}.vaiT img{width:64px;height:64px;object-fit:cover;border-radius:6px;border:1px solid var(--bd);display:block}
.vaiT .khongAnh{width:64px;height:64px;border-radius:6px;background:#f2f2f2;display:flex;align-items:center;justify-content:center;color:#999;flex:none}
.vaiT small{display:block;font-size:12px}.vaiT select{margin:4px 0 0;padding:4px 6px;font-size:13px;width:auto;max-width:100%}.vaiT .tienT{white-space:nowrap;font-size:14px}
.canhDo{background:#fdecea;color:#b3261e;border-radius:8px;padding:8px 10px;font-size:13px;margin:6px 0;font-weight:500}
.tcCanh{background:#fbf6ea;border-radius:8px;padding:8px 10px;font-size:13px;margin:6px 0 0 26px}
.anhNho{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 2px}.anhNho img{width:120px;height:90px;object-fit:cover;border-radius:6px;border:1px solid var(--bd);margin:0}
.bdK{max-width:1100px!important;width:96vw}#bdMap{height:72vh;border-radius:10px;margin-top:8px;border:1px solid var(--bd)}
.leaflet-control-layers{font-size:12.5px;max-height:60vh;overflow:auto}
.leaflet-control-layers label{display:flex;gap:6px;align-items:center;margin:3px 0;font-weight:400;font-size:12.5px}.leaflet-control-layers input{width:auto;margin:0}
/* chuyển giai đoạn mượt */
#nd.ra{opacity:0;transition:opacity .2s ease}
#nd.vao{animation:ndVao .45s ease both}
@keyframes ndVao{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.chuyenBao{background:#eef6ef;border:1px solid #cfe5d3;color:#1e5b2e;border-radius:10px;padding:10px 14px;margin:0 0 12px;font-weight:500;animation:ndVao .5s ease both;transition:opacity .7s,max-height .7s,margin .7s,padding .7s;max-height:120px;overflow:hidden}
.chuyenBao.het{opacity:0;max-height:0;margin:0;padding:0 14px;border-width:0}
/* xem ảnh toàn màn hình */
.anhFull{position:fixed;inset:0;background:rgba(10,10,10,.92);display:none;z-index:10000}
.anhFull.on{display:block}
.anhFull .khung{position:absolute;inset:0 0 52px;display:flex;align-items:center;justify-content:center;overflow:auto}
.anhFull img{max-width:100%;max-height:100%;object-fit:contain;cursor:zoom-in;background:#fff}
.anhFull.to .khung{display:block}.anhFull.to img{max-width:none;max-height:none;cursor:zoom-out}
.anhFull .thanh{position:absolute;left:0;right:0;bottom:0;height:52px;display:flex;gap:14px;align-items:center;justify-content:flex-end;padding:0 16px;color:#ddd;font-size:13px}
.anhFull .thanh .dem{margin-right:auto}.anhFull .thanh a{color:#cfe0ff}.anhFull .thanh .dong{color:#fff;background:transparent;border:1px solid #777}
.anhFull .mui{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:64px;border:0;border-radius:8px;background:rgba(255,255,255,.12);color:#fff;font-size:30px;cursor:pointer}
.anhFull .mui.trai{left:10px}.anhFull .mui.phai{right:10px}
/* phone: dòng cách làm, nút trả tiền, thẻ file, vùng bấm */
.day button{white-space:nowrap}
@media (max-width:560px){
  .tcC{flex-wrap:wrap}.tcC > div{flex:1 1 0;min-width:0}.tcC .p{flex-basis:100%;margin-left:26px;text-align:left}
  .tcH{flex-wrap:wrap}.tcH .gia{margin-left:auto}
  .cayF .goc.theB{flex-wrap:nowrap!important}.cayF .goc.theB > div:not(.ic){flex:1 1 0!important}.cayF .goc.theB > a{margin-left:0!important;width:56px!important}.cayF .goc.theB > a img{width:56px!important;height:56px!important}
  .cayF .goc{flex-wrap:wrap}.cayF .goc > div:not(.ic){flex:1 0 calc(100% - 60px)!important;min-width:0}.cayF .goc > .ic{flex:none}.cayF .goc > button,.cayF .goc > a{margin-left:auto}
  .day{gap:10px}.day button{padding:10px 14px}
  #nd a#doiChon,#nd a#chamLai,#nd .xoaDon a,#nd a[id^=xoa]{display:inline-block;padding:6px 0}
}

/* thanh tiến độ chia đoạn theo bước: bước đang chạy có vệt chạy trong đúng đoạn của nó */
.tienB{display:flex;gap:4px;height:8px}.tienB i{flex:1;border-radius:9px;background:var(--bd);overflow:hidden;position:relative}
.tienB i.xong{background:var(--ac)}.tienB i.loi{background:#d93025}
.tienB i.dang{background:color-mix(in srgb,var(--ac) 25%,var(--bd))}
.tienB i.dang::after{content:"";position:absolute;inset:0;width:40%;border-radius:9px;background:var(--ac);animation:chayBuoc 1.4s ease-in-out infinite}
@keyframes chayBuoc{0%{transform:translateX(-100%)}100%{transform:translateX(250%)}}
@media (prefers-reduced-motion:reduce){.tienB i.dang::after{animation:none;width:50%}}
.ttDon{margin:0 0 12px}.ttDon summary{cursor:pointer;color:var(--mu,#777);font-size:13.5px}.ttDon .kv{margin-top:8px;font-size:13.5px}
.dnHop{border:1px solid var(--bd);border-radius:12px;padding:20px;width:min(380px,calc(100vw - 32px));box-sizing:border-box}.dnHop::backdrop{background:rgba(0,0,0,.35)}
.dnF{display:flex;flex-direction:column;gap:10px}.dnF input{width:100%;box-sizing:border-box}
.dnHoac{display:flex;align-items:center;gap:8px;color:var(--mu);font-size:13px}.dnHoac::before,.dnHoac::after{content:'';flex:1;border-top:1px solid var(--bd)}
/* nút Quay lại: một kiểu cho mọi trang khách (chủ chốt 12/11) — dòng riêng bên trái, ngay dưới thanh đầu trang */
a.lai{display:inline-flex;align-items:center;min-height:32px;margin:0 0 10px;color:var(--mu);text-decoration:none;font-size:14.5px}a.lai:hover{color:var(--fg);text-decoration:underline}
.leaflet-control-layers-list{margin:0}.leaflet-control-layers-selector{width:auto!important;margin:0!important}.leaflet-control-layers-separator{margin:4px -6px!important}
#bdMap img{object-fit:fill;width:auto;max-height:none;max-width:none;border:0;border-radius:0;background:none;padding:0;margin:0}
