/* AstroUI Anatomy — styles/layout.css
   Khung trang: header, thanh điều hướng, breadcrumb, trang chủ, và các mốc responsive. */
/* ============ KHUNG APP HỌC ============ */
/* Tràn hết bề ngang màn hình, chỉ chừa lề hai bên. */
.wrap{max-width:none;margin:0;padding:20px 28px}
/* ---- header ---- */
.hd{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.hd h1{font-size:var(--fs-lg);margin:0;letter-spacing:-.3px;white-space:nowrap;flex:none}
.hd h1 span{color:var(--tx3);font-weight:400}
.sbtn{flex:1;max-width:430px;display:flex;align-items:center;gap:8px;background:var(--bg2);
  border:1px solid var(--line);border-radius:9px;padding:8px 12px;color:var(--tx3);font-size:var(--fs-sm);text-align:left}
.sbtn:hover{border-color:var(--line2);color:var(--tx2);background:var(--bg3)}
.sbtn-t{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
kbd{font:var(--fs-xs) var(--mono);background:var(--bg4);border:1px solid var(--line2);
  padding:2px 8px;border-radius:5px;color:var(--tx3);white-space:nowrap}
.setwrap{position:relative;flex:none;margin-left:auto}
.ibtn2{display:flex;align-items:center;gap:8px;background:var(--bg2);border:1px solid var(--line);
  border-radius:9px;padding:8px 12px;color:var(--tx2);font-size:var(--fs-sm);min-height:38px}
.ibtn2:hover{background:var(--bg3);color:var(--tx);border-color:var(--line2)}
.ibtn2[aria-expanded="true"]{background:var(--bg4);color:var(--tx);border-color:var(--line2)}
.setmenu{position:absolute;right:0;top:calc(100% + 6px);z-index:120;width:262px;background:var(--bg4);
  border:1px solid var(--line2);border-radius:12px;padding:12px;box-shadow:0 16px 40px rgba(0,0,0,.55)}
.setmenu[hidden]{display:none}
.smlab{font:600 var(--fs-xs)/1 var(--mono);color:var(--tx3);letter-spacing:.08em;text-transform:uppercase;padding:2px 4px 8px}
.seg2{display:flex;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:4px;gap:4px}
.seg2 button{flex:1;padding:8px;border-radius:6px;font-size:var(--fs-sm);color:var(--tx3);font-weight:500}
.seg2 button[aria-checked="true"]{background:var(--acc);color:#fff}
.smhint{margin:8px 4px 2px;font-size:var(--fs-xs);color:var(--tx3);line-height:1.5}
.vermeta{margin:2px 4px 0;font:var(--fs-xs)/1.5 var(--mono);color:var(--tx3);letter-spacing:.02em}
.vermeta b{color:var(--tx2);font-weight:600}
/* thương hiệu — trong menu Cài đặt */
.brandmeta{margin:4px 4px 0;font-size:var(--fs-xs);color:var(--tx3);display:flex;align-items:center;gap:8px}
.brandmeta b{color:var(--acc2);font-weight:600}
.brandmeta .bmark{font-size:var(--fs-xs);color:var(--pur)}
/* thương hiệu — chân trang chủ */
.brandbar{display:flex;align-items:center;gap:12px;margin-top:32px;padding-top:16px;
  border-top:1px solid var(--line)}
.brandbar .bmark2{width:30px;height:30px;border-radius:9px;flex:none;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--acc),var(--pur));color:#fff;font-size:var(--fs-sm)}
.brandbar .bx{display:flex;flex-direction:column;gap:2px;min-width:0}
.brandbar .bx b{font-size:var(--fs-sm);letter-spacing:-.1px;color:var(--tx)}
.brandbar .bx span{font-size:var(--fs-xs);color:var(--tx3);line-height:1.45}
.setmenu hr{border:0;border-top:1px solid var(--line);margin:8px 0}
.smi{display:flex;align-items:center;gap:8px;width:100%;padding:8px 8px;border-radius:7px;
  color:var(--tx2);font-size:var(--fs-sm);text-align:left}
.smi:hover{background:var(--bg3);color:var(--tx)}
.smi span{color:var(--tx3);width:13px;text-align:center;flex:none}

/* ---- nav 2 tầng ---- */
.nav1{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.nav1 button{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:10px;
  background:var(--bg2);border:1px solid var(--line);color:var(--tx2);font-size:var(--fs-sm);font-weight:500;min-height:42px}
.nav1 button:hover{background:var(--bg3);color:var(--tx);border-color:var(--line2)}
.nav1 button.on{background:rgba(91,140,255,.13);border-color:var(--acc);color:var(--acc2)}
.nav1 button i{font-style:normal;font-size:var(--fs-sm);opacity:.9}
.nav1 button em{font-style:normal;font:600 var(--fs-xs)/1 var(--mono);color:var(--tx3);
  background:var(--bg4);border-radius:5px;padding:2px 4px}
.nav1 button.on em{background:rgba(91,140,255,.2);color:var(--acc2)}
/* Không cuộn ngang — thiếu chỗ thì xuống dòng. */
.nav2wrap{margin-bottom:16px}
.nav2{display:flex;flex-wrap:wrap;gap:4px;background:var(--bg2);padding:4px;
  border-radius:var(--r);border:1px solid var(--line);width:auto}
.nav2 button{padding:8px 12px;border-radius:7px;color:var(--tx2);font-size:var(--fs-sm);
  font-weight:500;white-space:nowrap;min-height:34px}
.nav2 button:hover{background:var(--bg3);color:var(--tx)}
.nav2 button[aria-selected="true"]{background:var(--bg4);color:var(--tx)}
.nav2 s{width:1px;background:var(--line2);margin:4px 4px;flex:none}
.nav2 button .num{font:600 var(--fs-xs) var(--mono);color:var(--tx3);margin-right:8px}
.nav2 button[aria-selected="true"] .num{color:var(--acc)}
.nav1[hidden],.nav2wrap[hidden]{display:none}

/* ---- breadcrumb + stepper (chế độ Cơ bản) ---- */
.crumbbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--bg2);
  border:1px solid var(--line);border-radius:var(--r);padding:8px 12px;margin-bottom:16px}
.crumbbar[hidden]{display:none}
.crumb2{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:200px;font-size:var(--fs-sm)}
.crumb2 button{color:var(--tx3);padding:4px 8px;border-radius:6px;font-size:var(--fs-sm);min-height:30px}
.crumb2 button:hover{color:var(--tx);background:var(--bg3)}
.crumb2 span{color:var(--line2);font-size:var(--fs-xs)}
.crumb2 b{color:var(--tx);font-weight:600;font-size:var(--fs-sm);padding:0 2px}
.crumb2 em{font-style:normal;font:600 var(--fs-xs)/1 var(--mono);color:var(--tx3);
  background:var(--bg3);border-radius:99px;padding:4px 8px;letter-spacing:.03em}
.stepnav{display:flex;align-items:center;gap:8px;flex:none}
.stepnav>button,.ddwrap>button{background:var(--bg3);border:1px solid var(--line2);border-radius:8px;
  padding:8px 12px;font-size:var(--fs-sm);color:var(--tx2);min-height:34px}
.stepnav>button:hover:not(:disabled),.ddwrap>button:hover{background:var(--bg4);color:var(--tx)}
.stepnav>button:disabled{opacity:.35;cursor:not-allowed}
.ddwrap{position:relative}
.ddwrap>button[aria-expanded="true"]{background:var(--bg4);color:var(--tx);border-color:var(--acc)}
.dd{position:absolute;right:0;top:calc(100% + 6px);z-index:110;width:262px;background:var(--bg4);
  border:1px solid var(--line2);border-radius:10px;padding:4px;box-shadow:0 16px 40px rgba(0,0,0,.55);
  max-height:min(60vh,380px);overflow:auto}
.dd[hidden]{display:none}
.dd .ddg{font:600 var(--fs-xs)/1 var(--mono);color:var(--tx3);letter-spacing:.07em;
  text-transform:uppercase;padding:8px 8px 4px}
.dd button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 8px;border-radius:7px;
  color:var(--tx2);font-size:var(--fs-sm);text-align:left}
.dd button:hover,.dd button.sel{background:var(--bg3);color:var(--tx)}
.dd button[aria-current="true"]{background:rgba(91,140,255,.14);color:var(--acc2)}
.dd button .mk{width:11px;flex:none;font-size:var(--fs-xs);color:var(--tx3)}
.dd button .mk.done{color:var(--ok)}
.dd button .mk.seen{color:var(--acc)}

/* ---- trang chủ ---- */
.hero{margin:8px 0 20px}
.hero h2{font-size:var(--fs-2xl);margin:0 0 8px;letter-spacing:-.6px}
.hero p{margin:0;color:var(--tx2);font-size:var(--fs-md);max-width:820px}
/* CTA tiếp tục — primary action duy nhất của trang chủ */
.cta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  background:linear-gradient(135deg,rgba(91,140,255,.13),rgba(169,123,255,.08));
  border:1px solid rgba(91,140,255,.32);border-radius:14px;padding:16px 20px;margin-bottom:24px}
.cta .ctx{flex:1;min-width:220px}
.cta .ceyebrow{font:600 var(--fs-xs)/1 var(--mono);color:var(--acc2);letter-spacing:.08em;
  text-transform:uppercase;margin-bottom:8px}
.cta h3{margin:0 0 4px;font-size:var(--fs-lg);letter-spacing:-.2px}
.cta p{margin:0;color:var(--tx2);font-size:var(--fs-sm)}
.cta .cbtn{background:var(--acc);color:#fff;border-radius:10px;padding:12px 20px;
  font-size:var(--fs-md);font-weight:600;min-height:46px;display:inline-flex;align-items:center;gap:8px}
.cta .cbtn:hover{background:var(--acc2)}
.cta .cmini{color:var(--tx3);font-size:var(--fs-sm);padding:8px 4px;text-decoration:underline}
.cta .cmini:hover{color:var(--tx2)}
.jobshd{font:600 var(--fs-xs)/1 var(--mono);color:var(--tx3);letter-spacing:.09em;
  text-transform:uppercase;margin:0 0 12px}

/* ---- responsive ---- */
@media(max-width:980px){
  .jobs{grid-template-columns:1fr}
  .job{min-height:0}
  .job ul{margin-bottom:16px}
  .obopts{grid-template-columns:1fr}
  .hero h2{font-size:var(--fs-xl)}
}
@media(max-width:860px){
  .wrap{padding:16px 16px}
  .sbtn-t{display:none}
  .sbtn{flex:none;max-width:none;width:42px;justify-content:center;padding:8px}
  .sbtn kbd{display:none}
  .nav1 button{flex:1;justify-content:center;padding:12px 8px;font-size:var(--fs-sm)}
  .nav1 button i,.nav1 button em{display:none}
  .mock{grid-template-columns:1fr;height:auto}
  .mock .sb{display:none}
  .insp{position:static;max-height:none}
  .howsteps li{min-width:100%}
}
@media(max-width:560px){
  .hd h1 span{display:none}
  .ibtn2-t{display:none}
  .setmenu{width:min(90vw,262px)}
  .ob{padding:20px}
  .obh h2{font-size:var(--fs-lg)}
  .nextstep{flex-direction:column;align-items:stretch}
  .nextstep .btn{justify-content:center}
  .toastwrap{right:12px;left:12px;bottom:12px;align-items:stretch}
  .tst{max-width:none}
}
/* ma trận trạng thái */
.mx{overflow:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--bg2)}
.mx table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);min-width:660px}
.mx th{background:var(--bg3);color:var(--tx3);font:600 var(--fs-xs)/1.3 var(--mono);text-transform:uppercase;
  letter-spacing:.04em;padding:8px 8px;text-align:center;border-bottom:1px solid var(--line);white-space:nowrap}
.mx th:first-child{text-align:left;padding-left:12px;min-width:132px}
.mx td{padding:0;border-bottom:1px solid rgba(44,50,61,.5);text-align:center}
.mx td:first-child{text-align:left;padding:8px 12px;color:var(--tx);font-size:var(--fs-sm);font-weight:500}
.mx .cel{width:100%;height:34px;display:grid;place-items:center;cursor:pointer;color:var(--line2);font-size:var(--fs-sm)}
.mx .cel:hover{background:var(--bg3);color:var(--tx3)}
.mx .cel.ok{color:var(--ok);background:rgba(62,207,142,.08)}
.mx .cel.na{color:var(--line);cursor:default;background:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(255,255,255,.02) 4px,rgba(255,255,255,.02) 8px)}
.mx .cel.na:hover{background:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(255,255,255,.02) 4px,rgba(255,255,255,.02) 8px)}
.tok{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin:12px 0}
.tok>div{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);padding:12px}
.tok h5{margin:0 0 8px;font-size:var(--fs-sm)}
.tok .sc{display:flex;gap:4px;align-items:flex-end;height:34px;margin-bottom:8px}
.tok .sc i{background:var(--acc);border-radius:2px;flex:1;opacity:.75}
.tok p{margin:0;font-size:var(--fs-xs);color:var(--tx3);line-height:1.5}
.tok code{font:var(--fs-xs) var(--mono);color:var(--acc2)}
.sw{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:var(--fs-sm);color:var(--tx2)}
.sw input{display:none}
.sw i{width:38px;height:22px;background:var(--bg4);border-radius:99px;position:relative;transition:.15s;display:block;border:1px solid var(--line2)}
.sw i::after{content:"";position:absolute;left:3px;top:2.5px;width:15px;height:15px;border-radius:50%;background:var(--tx3);transition:.15s}
.sw input:checked + i{background:var(--acc);border-color:var(--acc)}
.sw input:checked + i::after{left:19px;background:#fff}

.grid{display:grid;grid-template-columns:1fr 360px;gap:16px;align-items:start}
@media(max-width:1100px){.grid{grid-template-columns:1fr}}

.hint{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);
  padding:12px 16px;margin-bottom:12px;color:var(--tx2);font-size:var(--fs-sm)}
.hint b{color:var(--acc2)}
.kbd{font-family:var(--mono);font-size:var(--fs-xs);background:var(--bg4);border:1px solid var(--line2);
  padding:0px 8px;border-radius:5px;color:var(--tx)}

