
:root{ --brand: var(--theme-default,#171621); --ring: rgba(23,22,33,.16) }
  .nav-pills .nav-link{ border-radius:.75rem; padding:.5rem .9rem; border:1px solid #e5e7eb; color:#374151 }
  .nav-pills .nav-link.active{ background:var(--brand); color:#fff; border-color:var(--brand) }
  .form-control:focus{ box-shadow:0 0 0 .2rem var(--ring); border-color:var(--brand) }
  .card{ border-radius:1rem }



:root{
    --aurora-bg: linear-gradient(135deg,#f3f7ff 0%,#ffffff 75%);
    --aurora-border: #eef2ff;
    --card-border: #edf1f7;
    --soft-shadow: 0 10px 30px rgba(16,24,40,.06);
    --soft-shadow-hover: 0 14px 40px rgba(16,24,40,.10);
    --text-muted-2: #6b7280;
  }

  .theme-aurora{
    background: var(--aurora-bg);
    border: 1px solid var(--aurora-border);
    border-radius: .9rem;
  }

  .filter-header{
    background: transparent;
    border-bottom: 1px solid rgba(226,232,240,.75);
    border-top-left-radius: .9rem;
    border-top-right-radius: .9rem;
  }
  .filter-title{
    font-weight: 700;
    letter-spacing: .02em;
    color:#0f172a;
  }

  .order-card{
    border-radius: 1rem;
    background: #fff;
    box-shadow: var(--soft-shadow);
    overflow: hidden;
    transition: transform .18s ease, box-shadow .18s ease;
    border: 1px solid var(--card-border);
  }
  .order-card:hover{
    transform: translateY(-2px);
    box-shadow: var(--soft-shadow-hover);
  }

 

  .order-card .card-body{ padding: 1.05rem 1.05rem; }

  .mono{
    font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  }
  .mono-muted{
    font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
    color: var(--text-muted-2);
  }
  .order-code{
    color:#0f172a;
    font-size: .95rem;
  }

  .divider-soft{
    height: 1px;
    background: linear-gradient(90deg, rgba(226,232,240,0), rgba(226,232,240,.9), rgba(226,232,240,0));
    margin: .85rem 0;
  }

  .link-service .svc-name{
    color:#2563eb;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 600;
  }
  .link-service:hover .svc-name{ text-decoration: none; }

  .link-row{
    padding: .65rem .75rem;
    border: 1px dashed rgba(203,213,225,.9);
    border-radius: .8rem;
    background: #f8fafc;
  }

  .btn-ic{
    width: 30px;
    height: 30px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius: .6rem;
    border: 1px solid rgba(226,232,240,1);
    background:#fff;
    color:#334155;
    padding:0;
  }
  .btn-ic:hover{ background:#f8fafc; }
  .btn-ic-outline{
    border-style: dashed;
  }

  .progress-soft{
    background: rgba(148,163,184,.18);
    border-radius: 999px;
    overflow: hidden;
  }


  .chip{
    display:inline-flex;
    align-items:center;
    gap:.3rem;
    padding:.18rem .55rem;
    border-radius: 999px;
    font-size: .74rem;
    border: 1px solid transparent;
    white-space: nowrap;
  }
  .chip b{ font-weight: 700; }
  .chip-blue{
    background: rgba(37,99,235,.06);
    border-color: rgba(37,99,235,.18);
    color:#1d4ed8;
  }
  .chip-green{
    background: rgba(16,185,129,.08);
    border-color: rgba(16,185,129,.22);
    color:#047857;
  }
  .chip-gray{
    background: rgba(148,163,184,.12);
    border-color: rgba(148,163,184,.25);
    color:#334155;
  }

  .stat-tile{
    border-radius: .85rem;
    padding: .7rem .75rem;
    border: 1px solid rgba(226,232,240,1);
    background: #fff;
  }
  .stat-tile .label{
    font-size: .78rem;
    color: var(--text-muted-2);
    margin-bottom: .15rem;
  }
  .stat-tile .value{
    font-weight: 800;
    letter-spacing: .01em;
  }
  .stat-primary{
    background: linear-gradient(135deg, rgba(37,99,235,.06), rgba(255,255,255,1));
  }
  .stat-primary .value{ color:#1d4ed8; }
  .stat-info{
    background: linear-gradient(135deg, rgba(14,165,233,.06), rgba(255,255,255,1));
  }
  .stat-info .value{ color:#0369a1; }

  /* Status badge (giữ text không xuống dòng) */
  .status-badge :is(span,div){ white-space:nowrap; }
  .status-badge .badge{
    display:inline-flex;
    align-items:center;
    padding:.18rem .65rem;
    border-radius:999px;
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.02em;
    text-transform:uppercase;
    border:1px solid transparent;
  }
  .status-badge .bg-success{
    color:#166534;
    background:rgba(22,101,52,.08) !important;
    border-color:rgba(22,101,52,.2);
  }
  .status-badge .bg-danger{
    color:#b91c1c;
    background:rgba(185,28,28,.06) !important;
    border-color:rgba(185,28,28,.18);
  }
  .status-badge .bg-primary{
    color:#1d4ed8;
    background:rgba(37,99,235,.06) !important;
    border-color:rgba(37,99,235,.18);
  }
  .status-badge .bg-warning{
    color:#92400e;
    background:rgba(251,191,36,.12) !important;
    border-color:rgba(251,191,36,.3);
  }
  .status-badge .bg-secondary,
  .status-badge .bg-light{
    color:#334155;
    background:#e2e8f0 !important;
    border-color:#cbd5e1;
  }

  .badge-loop{
    display:inline-flex;
    align-items:center;
    gap:.35rem;
    padding:.18rem .55rem;
    border-radius:999px;
    font-size:.72rem;
    font-weight:700;
    color:#036672;
    background:rgba(0,188,212,.10);
    border:1px solid rgba(0,188,212,.25);
    white-space:nowrap;
  }

  .btn-act{
    width: 38px;
    height: 34px;
    border-radius: .75rem;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0;
    border: 1px solid rgba(226,232,240,1);
    background:#fff;
    transition: transform .12s ease, background .12s ease;
  }
  .btn-act:hover{ transform: translateY(-1px); background:#f8fafc; }

  .btn-act-primary{ color:#1d4ed8; border-color: rgba(37,99,235,.22); background: rgba(37,99,235,.05); }
  .btn-act-info{ color:#0369a1; border-color: rgba(14,165,233,.22); background: rgba(14,165,233,.05); }
  .btn-act-warn{ color:#92400e; border-color: rgba(245,158,11,.26); background: rgba(245,158,11,.08); }

  .order-links a{ font-weight: 600; }

  @media (max-width: 576px){
    .order-card .card-body{ padding: .95rem; }
    .order-code{ font-size: .92rem; }
    .btn-act{ width: 36px; height: 34px; }
  }



.theme-aurora{
    background:linear-gradient(135deg,#f3f7ff 0%,#ffffff 75%);
    border:1px solid #eef2ff;
    border-radius:.75rem
  }
  .mono{
    font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace
  }
  .btn-xs{
    --bs-btn-padding-y:.15rem;
    --bs-btn-padding-x:.4rem;
    --bs-btn-font-size:.72rem
  }
  .note-box{
    background:#f8fafc;
    border:1px dashed #e5e7eb;
    border-radius:.6rem;
    padding:.5rem .75rem;
    white-space:pre-wrap
  }
  thead th{white-space:nowrap}

  .tx-badge{
    display:inline-flex;
    align-items:center;
    gap:.25rem;
    padding:.15rem .65rem;
    font-size:.72rem;
    font-weight:600;
    border-radius:999px;
    border:1px solid transparent;
    white-space:nowrap;
  }
  .tx-badge i{font-size:.75em;}

  .tx-badge-recharge{ background:#e5f9f0; border-color:#b4ebd2; color:#137c46; }
  .tx-badge-add{ background:#e4f2ff; border-color:#c5ddff; color:#0b5ed7; }
  .tx-badge-sub{ background:#ffe9e9; border-color:#ffd0d0; color:#c0392b; }
  .tx-badge-order{ background:#eef4ff; border-color:#d1dcff; color:#3949ab; }
  .tx-badge-refund{ background:#fff4e5; border-color:#ffe0b2; color:#c27a00; }
  .tx-badge-balance{ background:#f3f4f6; border-color:#e5e7eb; color:#374151; }
  .tx-badge-unknown{ background:#e5e7eb; border-color:#d1d5db; color:#4b5563; }



pre {
    background-color: rgba(43,94,94,.03);
    padding: 10px;
    color: #181C32;
}



.checkout-hero{border-radius:16px;background:linear-gradient(135deg,#f8fafc,#eef2ff);border:1px solid #eef1f4}
  .chip{display:inline-flex;align-items:center;gap:.45rem;padding:.28rem .6rem;border-radius:999px;border:1px solid #e5e7eb;background:#fff;font-weight:600;font-size:.8rem}
  .sticky{position:sticky;top:88px}
  .shadow-soft{box-shadow:0 10px 30px rgba(0,0,0,.06)}



:root{
    --brand: var(--theme-default, #171621);
    --ring: rgba(23,22,33,.12);
    --stroke:#e6e8ee;
    --soft:#f6f7fb;
    --radius:16px;
  }

  .note-card{ border-radius:var(--radius) }

  .soft-alert{
    background: linear-gradient(180deg,#ffffff,#fafbff);
    border:1px solid var(--stroke);
    border-left:5px solid var(--brand);
    box-shadow:0 10px 24px rgba(0,0,0,.05);
  }

  .product-card{
    border-radius:var(--radius);
    box-shadow:0 8px 24px rgba(0,0,0,.06);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    border:1px solid var(--stroke);
    background:#fff;
    overflow:hidden;
  }
  .product-card:hover{
    transform: translateY(-4px);
    box-shadow:0 16px 32px rgba(0,0,0,.09);
    border-color: rgba(23,22,33,.18);
  }

  .img-wrap{ position:relative; overflow:hidden; }
  .img-wrap::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg,transparent 55%, rgba(0,0,0,.06));
    opacity:.6; pointer-events:none;
  }
  .img-wrap img.card-img-top{
    height:220px; width:100%; object-fit:cover;
    display:block;
  }

  .price-badge{
    position:absolute; top:.6rem; right:.6rem;
    padding:.35rem .6rem; font-weight:700; font-size:.9rem;
    color:#fff;
    background: linear-gradient(135deg, var(--brand), #2a2a36);
    border-radius:12px;
    box-shadow:0 6px 16px rgba(0,0,0,.2);
    border:1px solid rgba(255,255,255,.15);
  }
  .stock-chip{
    position:absolute; left:.6rem; bottom:.6rem;
    padding:.25rem .55rem; font-size:.8rem; border-radius:999px;
    backdrop-filter: blur(6px);
    border:1px solid rgba(255,255,255,.35);
  }
  .stock-in{ color:#0f5132; background:rgba(25,135,84,.15) }
  .stock-out{ color:#842029; background:rgba(220,53,69,.18) }

  .title-line{
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
    overflow:hidden; min-height:2.4em;
  }

  .btn-ghost-dark{
    border:1px solid var(--stroke);
    border-radius:12px; background:#fff; color:#111827;
    padding:.7rem .9rem;
    transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
  }
  .btn-ghost-dark:hover{
    border-color: var(--brand);
    box-shadow: 0 0 0 .2rem var(--ring);
  }



.product-hero{
    border-radius:16px;
    background: linear-gradient(135deg, #f8fafc, #eef2ff);
    border:1px solid #eef1f4;
  }
  .chip{
    display:inline-flex;align-items:center;gap:.4rem;
    padding:.25rem .6rem;border-radius:999px;font-weight:600;
    border:1px solid #e5e7eb;background:#fff;color:#111827;font-size:.78rem;
  }
  .price-lg{font-size:1.9rem;font-weight:800; letter-spacing:.2px}
  .muted{color:#6b7280}
  .bullet i{color:#16a34a}
  .sticky-card{position:sticky; top:90px}
  .code-mono{font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
  .shadow-soft{box-shadow:0 10px 30px rgba(0,0,0,.06)}




  :root{
    --order-primary:#00bcd4;
    --order-primary-soft:rgba(0,188,212,.08);
    --order-primary-soft2:rgba(0,188,212,.14);
    --order-bg:#f4f7fb;
    --order-border:#e5e7f5;
    --order-card-radius:14px;
    --order-shadow:0 10px 30px rgba(2,6,23,.06);

    --stroke:#e5e7eb;
    --text:#0f172a;
    --muted:#6b7280;

    --ctrl-h: 52px;
    --ctrl-pad-y: .55rem;
    --ctrl-pad-x: .8rem;
    --ctrl-radius: 12px;
  }

  html{font-size:14px}
  body{background:var(--order-bg);}
  .order-page{font-size:.92rem}

  .order-page .card{
    border-radius:var(--order-card-radius);
    border:1px solid var(--order-border);
    box-shadow:var(--order-shadow);
    background:#fff
  }
  .order-page .card-header{
    background:#fff;
    border-bottom:1px solid #edf0f7
  }
  .order-page .card-header .fw-semibold{
    font-size:.95rem;
    color:var(--text);
    font-weight:800
  }

  .order-page .form-label{
    font-size:.8rem;
    color:#4b5563;
    font-weight:600;
    margin-bottom:6px
  }

  .order-page .form-control,
  .order-page .form-select{
    height: var(--ctrl-h);
    padding: var(--ctrl-pad-y) var(--ctrl-pad-x);
    border-radius: var(--ctrl-radius);
    border:1px solid #d1d5db;
    box-shadow:none;
    line-height:normal;
  }
  .order-page .form-control:focus,
  .order-page .form-select:focus{
    border-color:var(--order-primary);
    box-shadow:0 0 0 .18rem var(--order-primary-soft2)
  }

  .btn-black{
    width:100%;
    height:48px;
    border-radius:12px;
    border:0;
    background:#111;
    color:#fff;
    font-weight:800;
  }

  .btn-xs{
    --bs-btn-padding-y:.2rem;
    --bs-btn-padding-x:.5rem;
    --bs-btn-font-size:.72rem;
    border-radius:999px
  }

  .order-header-bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.75rem;
    flex-wrap:wrap
  }

  /* Box info giống panel bên order */
  .info-box{
    border:1px solid #e5e7f1;
    border-radius:12px;
    background:#fff;
    padding:.8rem .9rem;
    height:100%;
  }

  /* Alerts mềm */
  .alert-soft{
    background:#fff7f7;border:1px solid #ffdede;color:#991b1b;
    border-radius:12px;padding:.65rem .85rem;margin-bottom:12px
  }
  .alert-soft-success{
    background:#f0fdf4;border:1px solid rgba(34,197,94,.25);color:#166534;
    border-radius:12px;padding:.65rem .85rem;margin-bottom:12px
  }
  .alert-soft-warn{
    background:#fffbeb;border:1px solid rgba(245,158,11,.25);color:#92400e;
    border-radius:12px;padding:.65rem .85rem;margin-bottom:12px
  }

  .disabled-wrap{
    opacity:.7;
    pointer-events:none;
    filter:grayscale(.15);
  }

  /* ================== CARD GÓI GIỐNG ẢNH VPS ================== */
  .vps-card{
    position:relative;
    border:1px solid #e9eef6;
    border-radius:18px;
    background:#fff;
    padding:16px 16px 14px;
    box-shadow:0 10px 24px rgba(2,6,23,.06);
  }
  .vps-title{
    text-align:center;
    font-weight:900;
    color:var(--text);
    font-size:1.02rem;
    margin-bottom:.35rem;
  }
  .vps-price-row{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.5rem;
    margin-bottom:10px;
  }
  .vps-price{
    font-size:1.18rem;
    font-weight:900;
    color:#2563eb; /* xanh như ảnh */
    letter-spacing:.01em;
    line-height:1.1;
  }
  .vps-price small{
    font-size:.78rem;
    color:var(--muted);
    font-weight:800;
  }
  .vps-chev{
    color:#94a3b8;
    font-size:.9rem;
    transform:translateY(1px);
  }

  .vps-features{
    list-style:none;
    padding:0;
    margin:0 0 10px 0;
  }
  .vps-features li{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.75rem;
    padding:.45rem 0;
    border-top:1px dashed #eef2f7;
  }
  .vps-features li:first-child{ border-top:0; }
  .vps-f-left{
    display:flex;
    align-items:center;
    gap:.55rem;
    color:#0f172a;
    font-weight:600;
    font-size:.86rem;
  }
  .vps-f-left i{
    color:#2563eb;
    width:18px;
    text-align:center;
  }
  .vps-ok{
    color:#22c55e;
    font-size:1.05rem;
  }

  .vps-exp{
    text-align:center;
    font-size:.80rem;
    color:var(--muted);
    margin:2px 0 10px;
  }
  .vps-exp b{ color: var(--text); font-weight:800; }

  .btn-buy{
    width:100%;
    height:44px;
    border:0;
    border-radius:10px;
    background:#2563eb;
    color:#fff;
    font-weight:900;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5rem;
    box-shadow:0 10px 18px rgba(37,99,235,.18);
  }
  .btn-buy:hover{ filter:brightness(.98); color:#fff; }

  /* badge trạng thái nhỏ (tuỳ chọn) */
  .vps-badge{
    position:absolute;
    right:12px; top:12px;
    display:inline-flex;align-items:center;
    padding:.18rem .55rem;
    border-radius:999px;
    font-size:.68rem;
    font-weight:900;
    letter-spacing:.02em;
    border:1px solid transparent;
    text-transform:uppercase;
  }
  .vps-badge.on{color:#166534;background:rgba(22,101,52,.08);border-color:rgba(22,101,52,.2)}
  .vps-badge.off{color:#334155;background:#e2e8f0;border-color:#cbd5e1}
  .vps-badge.preview{color:#075985;background:#ecfeff;border-color:rgba(0,188,212,.35)}

  /* ================== GIỚI THIỆU / LỢI ÍCH ================== */
  .intro-title{
    font-weight:900;color:var(--text);
    text-align:center;font-size:1.05rem;margin:0 0 .9rem 0;
  }
  .benefit-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1rem 1.5rem;
  }
  .benefit{
    display:flex;gap:.75rem;align-items:flex-start;
  }
  .benefit-ico{
    width:34px;height:34px;border-radius:10px;
    background:var(--order-primary-soft);
    color:var(--order-primary);
    display:grid;place-items:center;
    flex:0 0 34px;
  }
  .benefit h6{
    margin:0;
    font-weight:900;
    color:var(--text);
    font-size:.92rem;
  }
  .benefit p{
    margin:.2rem 0 0 0;
    color:var(--muted);
    font-size:.82rem;
    line-height:1.35;
  }
  @media (max-width: 768px){
    .benefit-grid{grid-template-columns:1fr}
  }

  /* Table */
  .order-history-table thead{background:#f9fafb}
  .order-history-table thead th{
    font-size:.74rem;
    text-transform:uppercase;
    letter-spacing:.03em;
    white-space:nowrap;
    color:#4b5563;
    border-bottom:1px solid var(--stroke)
  }
  .order-history-table tbody td{font-size:.86rem;vertical-align:middle}



:root{
    /* ăn theo màu thương hiệu của layout chính nếu có */
    --brand: var(--theme-default, #171621);
    --brand-2:#4f46e5;
    --stroke:#e9e9f1;
    --muted:#6b7280;
    --r:16px;
  }

  /* Tiêu đề có thanh nhấn trái */
  h3.mb-4{
    position:relative; padding-left:.9rem; font-weight:800; color:#111827;
  }
  h3.mb-4::before{
    content:""; position:absolute; left:0; top:.25rem; bottom:.25rem; width:4px;
    border-radius:4px; opacity:.9;
    background:linear-gradient(180deg,var(--brand),var(--brand-2));
  }

  /* Alert tinh gọn, viền trái màu thương hiệu */
  .alert-light-danger{
    background:#fff;
    border:1px solid var(--stroke);
    border-left:6px solid var(--brand);
    border-radius:var(--r);
    box-shadow:0 10px 30px rgba(0,0,0,.05);
  }
  .section-head{display:flex;align-items:center;gap:.6rem;font-weight:800;color:#111827;margin-bottom:.35rem}
  .section-head .section-line{
    flex:1;height:2px;border-radius:2px;opacity:.5;
    background:linear-gradient(90deg,var(--brand),transparent);
  }
  .txt-dark ul li{color:#374151}

  /* Dải trượt danh mục: snap + fade mép */
  .scrolling-wrapper{
    overflow-x:auto; -webkit-overflow-scrolling:touch; scroll-behavior:smooth;
    scroll-snap-type:x mandatory;
    padding-bottom:.25rem;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 24px,#000 calc(100% - 24px),transparent 100%);
            mask-image:linear-gradient(90deg,transparent 0,#000 24px,#000 calc(100% - 24px),transparent 100%);
  }
  .scrolling-wrapper > a{ scroll-snap-align:start; }

  /* Scrollbar mảnh, tinh tế */
  .scrolling-wrapper::-webkit-scrollbar{ height:8px; }
  .scrolling-wrapper::-webkit-scrollbar-thumb{
    background:linear-gradient(90deg,#d9dbe9,#cfd1e6); border-radius:999px;
  }
  .scrolling-wrapper::-webkit-scrollbar-track{ background:transparent; }

  /* Card danh mục */
  .card{
    border-radius:var(--r);
    border:1px solid var(--stroke);
    background:#fff;
    box-shadow:0 10px 30px rgba(0,0,0,.05);
    transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  }
  .card:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 40px rgba(0,0,0,.08);
    border-color:rgba(79,70,229,.25);
  }

  .card-img-top{
    display:block;width:100%;
    border-top-left-radius:var(--r); border-top-right-radius:var(--r);
    transition:transform .35s ease, filter .35s ease;
  }
  .card:hover .card-img-top{ transform:scale(1.03); filter:saturate(1.05); }

  .card .card-title{ font-weight:800; letter-spacing:.2px; }
  .card .text-muted{ color:var(--muted)!important; }

  /* Giữ hiệu ứng hover cũ nhưng đồng bộ bóng/độ nâng */
  .hover-shadow:hover{
    box-shadow:0 18px 40px rgba(0,0,0,.08)!important;
    transform:translateY(-4px);
  }



:root{
    --brand: var(--theme-default, #171621);
    --brand-2:#4f46e5;
    --stroke:#e9e9f1;
    --r:16px;
  }

  /* Tiêu đề có vạch nhấn bên trái */
  h3.mb-4{position:relative;padding-left:.9rem;font-weight:800;color:#111827}
  h3.mb-4::before{
    content:"";position:absolute;left:0;top:.25rem;bottom:.25rem;width:4px;border-radius:4px;opacity:.9;
    background:linear-gradient(180deg,var(--brand),var(--brand-2));
  }

  /* Card tinh gọn: viền mảnh + bóng êm + hover nâng */
  .ingredient-card{
    border:1px solid var(--stroke)!important;border-radius:var(--r);
    box-shadow:0 10px 30px rgba(0,0,0,.05)!important;
    transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
    background:#fff;
  }
  .ingredient-card:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 40px rgba(0,0,0,.08)!important;
    border-color:rgba(79,70,229,.25)!important;
  }

  /* Mô tả 2 dòng, tràn sẽ “…” */
  .line-clamp-2{
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  }

  /* Chip giá nổi bật */
  .price-chip{
    background:linear-gradient(90deg,var(--brand),var(--brand-2));
    color:#fff;border-radius:999px;font-weight:800;font-size:.95rem;
    padding:.35rem .65rem;line-height:1;
  }



:root{
    --brand: var(--theme-default, #171621);
    --brand-2: #0ea5e9;
    --ring: rgba(23,22,33,.15);
    --stroke: #e9e9f1;
    --soft: #f8fafc;
    --radius: 16px;
  }

  /* Tiêu đề có vạch nhấn */
  h3.mb-4{
    position:relative;padding-left:.9rem;font-weight:800;color:#111827
  }
  h3.mb-4::before{
    content:"";position:absolute;left:0;top:.25rem;bottom:.25rem;width:4px;border-radius:4px;
    background:linear-gradient(180deg,var(--brand),var(--brand-2));
  }

  /* Khung chính */
  .shadow.rounded-4.p-4.bg-white.border{
    position:relative;border:1px solid var(--stroke)!important;border-radius:var(--radius)!important;
    box-shadow:0 12px 30px rgba(0,0,0,.06)!important;
  }
  .shadow.rounded-4.p-4.bg-white.border::before{
    /* viền nhấn mảnh trên đầu */
    content:"";position:absolute;left:0;right:0;top:0;height:3px;border-top-left-radius:inherit;border-top-right-radius:inherit;
    background:linear-gradient(90deg,var(--brand),var(--brand-2));
  }

  /* Gạch đầu dòng “tick” */
  .tick{
    width:18px;height:18px;flex:0 0 18px;border-radius:6px;display:inline-block;
    background:radial-gradient(circle at 60% 40%, #22c55e 0 35%, transparent 36%),
               conic-gradient(from 45deg at 40% 60%, #22c55e 0 25%, transparent 0 100%),
               linear-gradient(135deg,#22c55e 0 0);
    -webkit-mask: radial-gradient(circle at 60% 40%,#0000 0 8px,#000 9px) top left/18px 18px no-repeat;
    background-blend-mode: multiply;
  }

  /* Input & focus ring */
  .form-control{
    border:1px solid var(--stroke);padding:.8rem .9rem;border-radius:12px;
    box-shadow:none;transition:border-color .15s, box-shadow .15s;
  }
  .form-control:focus{
    border-color:var(--brand);
    box-shadow:0 0 0 .25rem var(--ring);
  }

  /* Nút chính đồng bộ brand */
  .btn-dark{
    background:linear-gradient(90deg,var(--brand),var(--brand-2));border:none;
    font-weight:800;letter-spacing:.2px;padding:.9rem 1rem;
    box-shadow:0 8px 20px rgba(2,6,23,.12);transition:transform .15s ease, box-shadow .15s ease;
  }
  .btn-dark:hover{ transform:translateY(-2px); box-shadow:0 12px 28px rgba(2,6,23,.16); }

  /* Alerts mềm */
  .alert-soft-success{ background:#ecfdf5;border:1px solid #86efac;color:#166534;border-radius:12px; }
  .alert-soft-danger{  background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:12px; }
  .alert-soft-warning{ background:#fffbeb;border:1px solid #fde68a;color:#92400e;border-radius:12px; }

  .form-text{ color:#6b7280; }



/* Khung code giống phong cách bảng lịch sử */
  .code-box{
    background:#f8fafc;
    border:1px dashed #e5e7eb;
    border-radius:.6rem;
    padding:.55rem .7rem;
    font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
    overflow:hidden;
  }

  /* Toast nhỏ gọn giữ nguyên logic */
  .toast-lite{
    position:fixed; right:16px; bottom:16px;
    background:#111827; color:#fff; border-radius:10px;
    padding:.6rem .8rem; font-weight:600; z-index:1055;
    box-shadow:0 10px 30px rgba(0,0,0,.15);
    opacity:0; transform:translateY(10px);
    transition:all .25s ease;
  }
  .toast-lite.show{ opacity:1; transform:translateY(0) }



:root {
                    --theme-default: #0e0c1c
                }


/* Source: resources/views/client/layouts/auth.blade.php (block 2) */
:root{
    --brand: var(--theme-default, #2563eb);
    --ring: rgba(37,99,235,.18);
    --text:#0f172a;
    --muted:#64748b;
    --stroke:#e5e7eb;
    --bg:#eef2ff;
    --card:#ffffff;
    --radius:18px;
    --shadow: 0 10px 30px rgba(2,6,23,.08);
    --shadow-strong: 0 20px 50px rgba(2,6,23,.12);
  }
  .dark{
    --brand:#3b82f6;
    --ring: rgba(59,130,246,.22);
    --text:#e5e7eb;
    --muted:#94a3b8;
    --stroke:#1f2937;
    --bg:#0b1220;
    --card:rgba(17,24,39,.75);
    --shadow: 0 10px 30px rgba(0,0,0,.25);
    --shadow-strong: 0 20px 60px rgba(0,0,0,.35);
  }

  /* Nền + hiệu ứng */
  .auth-bg{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:28px 12px;
    background:
      radial-gradient(1200px 600px at -10% -20%, rgba(59,130,246,.15), transparent 50%),
      radial-gradient(900px 500px at 120% 10%, rgba(16,185,129,.12), transparent 60%),
      radial-gradient(700px 400px at 50% 120%, rgba(99,102,241,.12), transparent 60%),
      var(--bg);
    position:relative;
    overflow:hidden;
  }
  .auth-bg::before,
  .auth-bg::after{
    content:"";
    position:absolute;
    width:360px;height:360px;
    filter:blur(60px);
    opacity:.35; border-radius:50%;
    animation: float 16s ease-in-out infinite;
    pointer-events:none;
  }
  .auth-bg::before{ background: radial-gradient(circle at 30% 30%, #60a5fa, transparent 60%); top:-80px; left:-80px;}
  .auth-bg::after{ background: radial-gradient(circle at 70% 70%, #22d3ee, transparent 60%); bottom:-80px; right:-80px;}
  @keyframes float{
    0%,100%{ transform: translateY(0) }
    50%{ transform: translateY(18px) }
  }

  /* Card glassmorphism */
  .auth-card{
    width:100%;
    max-width:1040px;
    border:1px solid var(--stroke);
    border-radius:var(--radius);
    background:var(--card);
    box-shadow:var(--shadow-strong);
    overflow:hidden;
    backdrop-filter:saturate(120%) blur(14px);
    -webkit-backdrop-filter:saturate(120%) blur(14px);
    transition: transform .2s ease;
  }
  .auth-card:hover{ transform: translateY(-1px) }

  /* Lưới */
  @media (min-width:992px){ .grid{display:grid;grid-template-columns: 1fr 1.1fr} }
  @media (max-width:991.98px){ .auth-side{display:none} }

  /* Cột trái */
  .auth-side{
    padding:36px 32px;
    border-right:1px solid var(--stroke);
    background:
      linear-gradient(180deg, rgba(37,99,235,.08), transparent 45%),
      linear-gradient(0deg, rgba(16,185,129,.08), transparent 35%);
  }
  .brand{display:flex;align-items:center;gap:.9rem}
  .brand img{width:48px;height:48px;border-radius:14px;object-fit:cover;box-shadow:0 8px 24px rgba(2,6,23,.12)}
  .brand .name{font-weight:900;color:var(--text);font-size:1.25rem;letter-spacing:.2px}
  .sub{color:var(--muted)}

  .pill{
    display:inline-flex;align-items:center;gap:.5rem;
    padding:.55rem .8rem;margin:.35rem 0;border-radius:999px;
    border:1px dashed var(--stroke);color:var(--text);background:rgba(255,255,255,.45);
    backdrop-filter: blur(6px);
  }
  .pill i{color:#22c55e}

  .side-card{
    margin-top:18px;border:1px solid var(--stroke);border-radius:16px;padding:14px 16px;
    background:linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,.35));
    backdrop-filter: blur(10px);
  }
  .side-meta{display:flex;gap:10px;margin-top:10px}
  .chip{
    border:1px solid var(--stroke);border-radius:12px;padding:.35rem .55rem;font-weight:700;font-size:.82rem;color:var(--muted);
    background:#fff;
  }
  .dark .chip{ background:rgba(17,24,39,.6) }

  /* Cột phải (form) */
  .auth-form{ padding:32px 30px }
  @media (min-width:992px){ .auth-form{ padding:40px 44px } }

  .section-title{display:flex;align-items:center;gap:.65rem;margin-bottom:.8rem}
  .section-title .bar{width:6px;height:22px;border-radius:6px;background:linear-gradient(180deg, var(--brand), #22d3ee)}
  .section-title .text{font-weight:900;color:var(--text);font-size:1.35rem}

  .lead{color:var(--muted)}

  /* Input-group + focus ring */
  .form-label{font-weight:800;color:var(--text);margin-bottom:.45rem}
  .input-xl > .input-group-text,
  .input-xl > .form-control,
  .input-xl > .btn{height:50px}
  .input-group-text{background:rgba(2,6,23,.03);color:#6b7280;border-color:var(--stroke)}
  .form-control{border-color:var(--stroke);padding:.9rem 1rem;background:rgba(255,255,255,.85)}
  .input-group>.input-group-text:first-child,
  .input-group>.form-control:first-child{border-top-left-radius:14px;border-bottom-left-radius:14px}
  .input-group>.btn:last-child,
  .input-group>.form-control:last-child,
  .input-group>.input-group-text:last-child{border-top-right-radius:14px;border-bottom-right-radius:14px}
  .input-group:focus-within .input-group-text,
  .input-group:focus-within .form-control,
  .input-group:focus-within .btn{
    border-color:var(--brand)!important;box-shadow:0 0 0 .25rem var(--ring);
  }
  .form-control.is-invalid{ box-shadow:0 0 0 .25rem rgba(239,68,68,.15) }

  /* Checkbox */
  input[type="checkbox"]{ accent-color: var(--brand) }

  /* Nút */
  .btn{font-weight:800;letter-spacing:.2px}
  .btn-primary{
    background: linear-gradient(90deg, var(--brand), #22d3ee);
    border: none;
    border-radius:14px;padding:1rem 1.1rem;box-shadow: 0 8px 24px rgba(2,132,199,.25);
    transition: transform .08s ease, box-shadow .2s ease, filter .2s ease;
  }
  .btn-primary:hover{ filter:brightness(1.03); box-shadow: 0 10px 28px rgba(2,132,199,.32) }
  .btn-primary:active{ transform: translateY(1px) }
  .btn-outline{
    border:1px solid var(--stroke);border-radius:14px;background:transparent;color:var(--text);padding:.95rem 1rem;font-weight:800;
  }
  .btn-ghost{
    border:1px solid var(--stroke);background:transparent;color:#6b7280;border-radius:14px;
  }
  .btn-ghost:hover{background:rgba(2,6,23,.04)}

  /* Alert */
  .alert-soft{
    background:linear-gradient(180deg, rgba(254,242,242,.9), rgba(254,242,242,.7));
    border:1px solid #fecaca;border-radius:14px;color:#991b1b;padding:.7rem .9rem
  }

  /* recaptcha */
  .captcha-wrap{ display:flex; justify-content:center }
  .captcha-wrap > div{ transform:scale(.98); transform-origin:center }

  /* Theme toggle */
  .theme-toggle{
    position:absolute; top:14px; right:14px; z-index:5;
    background:rgba(255,255,255,.7); border:1px solid var(--stroke); backdrop-filter: blur(8px);
    width:40px; height:40px; border-radius:12px; display:grid; place-items:center; cursor:pointer;
    color:var(--text);
  }
  .dark .theme-toggle{ background:rgba(17,24,39,.65) }

  /* Shake khi lỗi */
  .shake{ animation:shake .28s linear 1 }
  @keyframes shake{
    0%,100%{ transform:translateX(0) }
    25%{ transform:translateX(-6px) }
    75%{ transform:translateX(6px) }
  }


/* Source: resources/views/client/layouts/auth.blade.php (block 3) */
.btn-outline-primary.active,
                .btn-outline-primary:active,
                .btn-outline-primary:focus,
                .btn-outline-primary:hover {
                    background-color: #0e0c1c !important;
                    border-color: #0e0c1c !important;
                    color: #fff
                }
                .btn-outline-primary {
                background-color: transparent;
                border-color: #0e0c1c;
                color: #0e0c1c
            }



.st0{fill:none;stroke:#e8e8e8;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st1{fill:none;stroke:#e8e8e8;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:3;} .st2{fill:none;stroke:#e8e8e8;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:10;} .st3{fill:none;}



.st0{fill:#ffffff;}



.particle-snow{
      position:fixed;
      top:0;
      left:0;
      width:100%;
      height:100%;
      z-index:9999;              /* Tăng cao để nằm trên mọi layer */
      pointer-events:none;
      display:block !important;  /* Phòng trường hợp bị CSS khác ẩn đi */
  }
  .particle-snow canvas{
      position:fixed;
      top:0;
      left:0;
      width:100%;
      height:100%;
      pointer-events:none;
      z-index:9999 !important;   /* Đảm bảo canvas cũng cao */
  }

  .christmas-garland{
      text-align:center;
      white-space:nowrap;
      overflow:hidden;
      position:absolute;
      z-index:9999;
      padding:0;
      pointer-events:none;
      width:100%;
      height:85px;
  }
  /* Phần dưới giữ nguyên như trước */
  .christmas-garland .christmas-garland__item{ ... }
  /* ... các rule khác của christmas-garland ... */

  /* Bảo đảm trên mobile không bị media query nào vô tình ẩn đi */
  @media (max-width: 991.98px){
    .particle-snow,
    .particle-snow canvas,
    .christmas-garland{
      display:block !important;
      opacity:1 !important;
      visibility:visible !important;
    }
  }


/* Source: resources/views/client/layouts/client.blade.php (block 4) */
/* =========================
   FIX: Sidebar scroll khi menu dài
   ========================= */

/* Sidebar luôn cao bằng màn hình và không bị cắt */
.page-wrapper.compact-wrapper .sidebar-wrapper{
  height: 100vh;
  overflow: hidden; /* chặn scroll ở wrapper */
}

/* Giữ logo trên cùng (tuỳ thích) */
.page-wrapper.compact-wrapper .sidebar-wrapper .logo-wrapper{
  position: sticky;
  top: 0;
  z-index: 5;
  background: inherit;
}

/* Khối menu phải có chiều cao và cho phép scroll */
.page-wrapper.compact-wrapper .sidebar-wrapper .sidebar-main{
  height: calc(100vh - 80px); /* 80px ~ chiều cao logo-wrapper; nếu logo cao hơn thì tăng */
  overflow: hidden;
}

/* Vùng cuộn thực sự */
.page-wrapper.compact-wrapper .sidebar-wrapper #sidebar-menu{
  height: 100%;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 24px; /* chừa đáy để không bị sát */
}

/* Mobile dùng dvh để tránh lỗi thanh address bar */
@media (max-width: 991.98px){
  .page-wrapper.compact-wrapper .sidebar-wrapper{
    height: 100dvh;
  }
  .page-wrapper.compact-wrapper .sidebar-wrapper .sidebar-main{
    height: calc(100dvh - 70px);
  }
}

/* Optional: scrollbar nhỏ gọn */
.page-wrapper.compact-wrapper .sidebar-wrapper #sidebar-menu::-webkit-scrollbar{ width: 6px; }
.page-wrapper.compact-wrapper .sidebar-wrapper #sidebar-menu::-webkit-scrollbar-thumb{ border-radius: 10px; }


/* Source: resources/views/client/layouts/client.blade.php (block 5) */
/* --- FIX: tắt tree-lines của sidebar submenu (mobile + desktop) --- */
.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-submenu {
  border-left: 0 !important;
}
.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-submenu::before,
.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-submenu::after,
.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-submenu li::before,
.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-submenu li::after,
.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-submenu li a::before,
.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-submenu li a::after,
.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links > li::before,
.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links > li::after,
.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-title::before,
.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-title::after,
.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-link::before,
.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-link::after {
  content: none !important;         /* chặn mọi pseudo-element vẽ line */
  display: none !important;
}

/* Giữ lại hiệu ứng hover/active “pill” của bạn, không bị nền xám lạ */
.sidebar-submenu a {
  background: transparent !important;
  border: 1px solid transparent;
  border-radius: 10px;
}
.sidebar-submenu a:hover,
.sidebar-submenu a.active {
  border-color: var(--sb-outline);
  background: var(--sb-outline-soft);
  color: #fff;
}

/* Ngăn ring mặc định của trình duyệt làm viền chồng lên nhau */
.sidebar-links a:focus { outline: none !important; }
.sidebar-links a:focus-visible {
  box-shadow: 0 0 0 2px var(--sb-outline-soft);
}
@media (max-width: 991.98px){ /* ...đoạn trên... */ }
/* ---- INDENT submenu sâu hơn (đi vào trong) ---- */
:root{
  --sb-sub-indent: -5px;      /* chỉnh 56–72px tuỳ ý */
  --sb-sub-pad: 14px;
}

.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-submenu{
  margin-left: var(--sb-sub-indent) !important;   /* đẩy cả khối vào trong */
}

.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-submenu a{
  padding-left: var(--sb-sub-pad) !important;     /* thêm chút đệm bên trong */
  border-radius: 10px;
}

/* nếu có submenu lồng nữa thì thụt thêm chút */
.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-submenu .sidebar-submenu{
  margin-left: calc(var(--sb-sub-indent) - 10px) !important;
}

/* mobile: thường cần sâu hơn một chút */
@media (max-width: 991.98px){
  .page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-submenu{
    margin-left: calc(var(--sb-sub-indent) + 8px) !important;
  }
}
/* Cố định lệch nút mũi tên trong sidebar */
.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-link,
.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-title{
  width: 100%;
  box-sizing: border-box;
  padding-right: 18px;                 /* chừa chỗ cho nút tròn */
}

/* đẩy .according-menu sang phải hoàn toàn */
.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-link .according-menu,
.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-title .according-menu{
  margin-inline-start: auto;
  display: flex; align-items: center;
}

/* style nút tròn để không bị lồi/lệch */
.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-link .according-menu i,
.page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-title .according-menu i{
  width: 20px; height: 20px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.12);
}

/* chừa thêm khoảng phải cho toàn menu để tránh bị cắt */
#sidebar-menu{ padding-right: 12px !important; }

/* mobile: thường cần đệm nhiều hơn chút */
@media (max-width: 991.98px){
  .page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-link,
  .page-wrapper .sidebar-wrapper .sidebar-main .sidebar-links .sidebar-title{
    padding-right: 22px;
  }
}

/* Nếu vẫn bị cắt do overflow, bật visible (tuỳ trường hợp) */
/* .page-wrapper .sidebar-wrapper, .sidebar-main, #sidebar-menu { overflow: visible !important; } */



.checkout-hero{border-radius:16px;background:linear-gradient(135deg,#f8fafc,#eef2ff);border:1px solid #eef1f4}
  .chip{display:inline-flex;align-items:center;gap:.45rem;padding:.28rem .6rem;border-radius:999px;border:1px solid #e5e7eb;background:#fff;font-weight:600;font-size:.8rem}
  .sticky{position:sticky;top:88px}
  .shadow-soft{box-shadow:0 10px 30px rgba(0,0,0,.06)}



:root{
    --brand: var(--theme-default, #171621);
    --ring: rgba(23,22,33,.12);
    --stroke:#e6e8ee;
    --soft:#f6f7fb;
    --radius:16px;
  }

  .note-card{ border-radius:var(--radius) }

  .soft-alert{
    background: linear-gradient(180deg,#ffffff,#fafbff);
    border:1px solid var(--stroke);
    border-left:5px solid var(--brand);
    box-shadow:0 10px 24px rgba(0,0,0,.05);
  }

  /* Card sản phẩm */
  .product-card{
    border-radius:var(--radius);
    box-shadow:0 8px 24px rgba(0,0,0,.06);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    border:1px solid var(--stroke);
    background:#fff;
    overflow:hidden;
  }
  .product-card:hover{
    transform: translateY(-4px);
    box-shadow:0 16px 32px rgba(0,0,0,.09);
    border-color: rgba(23,22,33,.18);
  }

  .img-wrap{ position:relative; overflow:hidden; }
  .img-wrap::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg,transparent 55%, rgba(0,0,0,.06));
    opacity:.6; pointer-events:none;
  }
  .img-wrap img.card-img-top{
    height:220px; width:100%; object-fit:cover;
    display:block;
  }

  .price-badge{
    position:absolute; top:.6rem; right:.6rem;
    padding:.35rem .6rem; font-weight:700; font-size:.9rem;
    color:#fff;
    background: linear-gradient(135deg, var(--brand), #2a2a36);
    border-radius:12px;
    box-shadow:0 6px 16px rgba(0,0,0,.2);
    border:1px solid rgba(255,255,255,.15);
  }
  .stock-chip{
    position:absolute; left:.6rem; bottom:.6rem;
    padding:.25rem .55rem; font-size:.8rem; border-radius:999px;
    backdrop-filter: blur(6px);
    border:1px solid rgba(255,255,255,.35);
  }
  .stock-in{ color:#0f5132; background:rgba(25,135,84,.15) }
  .stock-out{ color:#842029; background:rgba(220,53,69,.18) }

  .title-line{
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
    overflow:hidden; min-height:2.4em;
  }

  .btn-ghost-dark{
    border:1px solid var(--stroke);
    border-radius:12px; background:#fff; color:#111827;
    padding:.7rem .9rem;
    transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
  }
  .btn-ghost-dark:hover{
    border-color: var(--brand);
    box-shadow: 0 0 0 .2rem var(--ring);
  }



.product-hero{
    border-radius:16px;
    background: linear-gradient(135deg, #f8fafc, #eef2ff);
    border:1px solid #eef1f4;
  }
  .chip{
    display:inline-flex;align-items:center;gap:.4rem;
    padding:.25rem .6rem;border-radius:999px;font-weight:600;
    border:1px solid #e5e7eb;background:#fff;color:#111827;font-size:.78rem;
  }
  .price-lg{font-size:1.9rem;font-weight:800; letter-spacing:.2px}
  .muted{color:#6b7280}
  .bullet i{color:#16a34a}
  .sticky-card{position:sticky; top:90px}
  .code-mono{font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
  .shadow-soft{box-shadow:0 10px 30px rgba(0,0,0,.06)}



/* ================== TONE CHUNG (giống index.blade.php) ================== */
  :root{
    --order-primary:#00bcd4;
    --order-primary-soft:rgba(0,188,212,.08);
    --order-primary-soft2:rgba(0,188,212,.14);
    --order-bg:#f4f7fb;
    --order-border:#e4e7f5;
    --order-card-radius:10px;
    --order-shadow:0 4px 12px rgba(15,23,42,.06);
  }
  body{background:var(--order-bg);}
  .order-page .card{
    border-radius:var(--order-card-radius);
    border:1px solid var(--order-border);
    box-shadow:var(--order-shadow);
    background:#fff;
  }
  .order-page .card-header{
    background:#fff;
    border-bottom:1px solid #edf0f7;
  }
  .order-page .card-header .fw-semibold{
    font-size:.9rem;
    color:#111827;
  }

  .order-page .form-label{
    font-size:.83rem;
    color:#4b5563;
    font-weight:500;
  }
  .mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}
  .btn-xs{--bs-btn-padding-y:.15rem;--bs-btn-padding-x:.35rem;--bs-btn-font-size:.72rem}

  /* =========== THÔNG TIN DỊCH VỤ (panel phải) =========== */
  .svc-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}
  .svc-head__title{font-weight:600;font-size:.9rem;color:#111827;white-space:nowrap}
  .svc-head__title::before{content:'ⓘ';font-size:.9rem;margin-right:.15rem;color:var(--order-primary)}
  .svc-head__line{flex:1;height:1px;background:linear-gradient(90deg,#e5e7eb,transparent)}
  .svc-title{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border:1px solid #e5e7f1;border-radius:8px;background:#f9fafb}
  .svc-chip{font-size:.75rem;font-weight:600;color:#036672;background:var(--order-primary-soft);border-radius:999px;padding:.12rem .55rem;white-space:nowrap}
  .svc-bar{color:#9ca3af;user-select:none}
  .svc-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700;color:#111827}
  .svc-divider{height:1px;background:linear-gradient(90deg,#f3f4f6,#e5e7f1,#f3f4f6);margin:.5rem 0}

  .section-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem}
  .section-head>span:first-child{font-weight:600;color:#b91c1c;font-size:.85rem;}
  .section-line{flex:1;height:1px;background:linear-gradient(90deg,#fed7d7,transparent)}
  .alert-light-danger{background:#fff8f8;border:1px solid #ffe0e0;border-left-width:4px;border-left-color:#fb7185;font-size:.83rem;color:#b91c1c;border-radius:8px;}

  /* =========== SERVER TILES (Máy chủ) =========== */
  .server-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:.6rem;}
  @media (min-width:768px){.server-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
  .btn-check{position:absolute;inset:0;opacity:0}
  .server-tile{width:100%;text-align:left;border:1px solid #e5e7f1;border-radius:8px;padding:.7rem .85rem;background:#fdfefe;display:flex;align-items:center;gap:.55rem;transition:.16s;cursor:pointer;}
  .server-tile:hover{border-color:#cbd5f5;background:#f9fcff;box-shadow:0 4px 10px rgba(15,23,42,.05);}
  .server-tile .code{font-weight:700;color:#0f172a;font-size:.82rem;}
  .server-tile .name{flex:1;color:#374151;font-size:.84rem;}
  .server-tile .price{font-weight:700;color:#b91c1c;background:#fff5f5;border-radius:999px;padding:.15rem .55rem;border:1px solid #fee2e2;font-size:.78rem;white-space:nowrap;}
  .server-tile .badge-state{border-radius:999px;font-size:.7rem;padding:.12rem .45rem;}
  .btn-check:checked + .server-tile{border-color:var(--order-primary);box-shadow:0 0 0 2px var(--order-primary-soft2);background:#ecfeff;}

  .form-control,.form-select{border-radius:8px;border-color:#d1d5db;}
  .form-control:focus,.form-select:focus{border-color:var(--order-primary);box-shadow:0 0 0 .15rem var(--order-primary-soft2);}

  /* INPUT LINK */
  #object_id{font-size:.86rem;}

  /* CARD tổng thanh toán */
  .order-total-box{background:#e0f7fa;border-radius:8px;border:1px solid #b2ebf2;padding:.7rem .9rem;}

  /* Skeleton khi load AJAX */
  .skeleton{background-image:linear-gradient(90deg,#f2f4f7 0px,#f7f9fc 40px,#f2f4f7 80px);background-size:600px;animation:skele 1.2s infinite linear;}
  @keyframes skele{0%{background-position:-100px}100%{background-position:400px}}
  .server-skeleton{height:55px;border-radius:8px}
  .link-service:hover u{text-decoration:none}

  /* ========== OPTION BUTTON (Dropdown có search như index) ========== */
  .selectbox{position:relative}
  .selectbox-toggle{
    width:100%;display:flex;align-items:center;gap:.5rem;
    border:1px solid #e5e7f1;border-radius:10px;padding:.55rem .75rem;
    background:#fff;box-shadow:var(--order-shadow);text-align:left;
  }
  .selectbox-toggle img{width:18px;height:18px;border-radius:4px}
  /* Đổi .label -> .sb-label để tránh xung đột theme */
  .selectbox-toggle .sb-label{
    flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#111827;
  }
  .selectbox-toggle .sb-chev{margin-left:auto;opacity:.7}
  .selectbox-menu{
    position:absolute;left:0;right:0;z-index:40;margin-top:.25rem;
    background:#fff;border:1px solid #e5e7f1;border-radius:10px;
    box-shadow:0 12px 24px rgba(15,23,42,.12);display:none;
  }
  .selectbox.open .selectbox-menu{display:block}
  .selectbox-search{padding:.45rem .55rem;border-bottom:1px solid #eef2f7}
  .selectbox-search input{
    width:100%;border:1px solid #e5e7f1;border-radius:8px;padding:.4rem .6rem;font-size:.86rem
  }
  .selectbox-list{max-height:280px;overflow:auto;padding:.25rem 0}
  .selectbox-option{display:flex;align-items:center;gap:.55rem;padding:.45rem .7rem;cursor:pointer}
  .selectbox-option img{width:18px;height:18px;border-radius:4px}
  .selectbox-option:hover{background:#f9fafb}
  .selectbox-option.active{background:#ecfeff;outline:1px solid var(--order-primary)}
  .selectbox-section{font-size:.75rem;color:#9ca3af;padding:.35rem .75rem;border-top:1px dashed #eef2f7}



/* ---- Match chiều cao control với hộp Nền tảng/Dịch vụ ---- */
  :root{
    --ctrl-h: 52px;
    --ctrl-pad-y: .55rem;
    --ctrl-pad-x: .8rem;
    --ctrl-radius: 12px;
  }
  .selectbox-toggle{
    min-height: var(--ctrl-h);
    padding: var(--ctrl-pad-y) var(--ctrl-pad-x);
    border-radius: var(--ctrl-radius);
  }
  .order-page .form-control,
  .order-page .form-select{
    height: var(--ctrl-h);
    padding: var(--ctrl-pad-y) var(--ctrl-pad-x);
    border-radius: var(--ctrl-radius);
    line-height: normal;
  }
  #object_id, #quantity{ font-size: .92rem; }


/* Source: resources/views/client/order/index.blade.php (block 2) */
:root{
    --text:#0f172a;
    --muted:#6b7280;
    --stroke:#e5e7eb;
    --bg:#f3f4f6;
  }
  .auth-wrap{
    min-height:100vh; display:flex; align-items:center; justify-content:center;
    padding:32px 16px; background:var(--bg);
  }
  .auth-sheet{
    width:100%; max-width:1200px; background:#fff;
    border:1px solid #eef2f7; border-radius:24px;
    box-shadow:0 24px 60px rgba(2,6,23,.10);
    display:grid; grid-template-columns:1.25fr 1fr; overflow:hidden;
  }
  .sheet-left{ background:#fafafa; padding:40px; display:grid; place-items:center; }
  .illus-card{
    position:relative; width:100%; height:100%;
    min-height:460px; border-radius:32px; background:#fff;
    box-shadow:0 18px 40px rgba(2,6,23,.12);
    overflow:hidden;
  }
  .illus-bg{
    position:absolute; inset:0;
    background:
      radial-gradient(900px 400px at 10% 20%, #ffe3f1 0, transparent 55%),
      radial-gradient(900px 400px at 90% 80%, #eaf4ff 0, transparent 55%),
      radial-gradient(700px 320px at 70% 10%, #fff3c4 0, transparent 60%);
    opacity:.8;
  }
  .illus-wrap{ position:relative; height:100%; display:grid; place-items:center; padding:28px; }
  .illus-img{ width:min(560px, 92%); height:auto; display:block }

  .sheet-right{ padding:44px; }
  .brand-badge{
    width:40px;height:40px;border-radius:12px;display:grid;place-items:center;
    background:#e7f0ff;color:#2563eb;margin-bottom:10px;
  }
  .auth-title{ font-size:22px; font-weight:900; color:var(--text); margin-bottom:18px }
  .form-label{ font-weight:700; color:#374151; margin-bottom:6px }
  .form-control{
    height:46px; border-radius:12px; border:1px solid var(--stroke);
    background:#fff; padding:.85rem 1rem; box-shadow:none;
  }
  .form-control:focus{ border-color:#9db7ff; box-shadow:0 0 0 3px rgba(99,102,241,.18) }
  .btn-black{
    width:100%; height:48px; border-radius:12px; border:0;
    background:#111; color:#fff; font-weight:800;
  }
  .alert-soft{
    background:#fff7f7;border:1px solid #ffdede;color:#991b1b;
    border-radius:12px;padding:.65rem .85rem;margin-bottom:12px
  }
  @media (max-width: 992px){
    .auth-sheet{ grid-template-columns:1fr }
    .sheet-left{ display:none }
    .sheet-right{ padding:28px 20px }
  }


/* Source: resources/views/client/order/index.blade.php (block 3) */
:root{
    --order-primary:#00bcd4;
    --order-primary-soft:rgba(0,188,212,.08);
    --order-primary-soft2:rgba(0,188,212,.14);
    --order-bg:#f4f7fb;
    --order-border:#e5e7f5;
    --order-card-radius:14px;
    --order-shadow:0 10px 30px rgba(2,6,23,.06);
  }
  html{font-size:14px}
  body{background:var(--order-bg);}
  .order-page{font-size:.92rem}
  .order-page .card{border-radius:var(--order-card-radius);border:1px solid var(--order-border);box-shadow:var(--order-shadow);background:#fff}
  .order-page .card-header{background:#fff;border-bottom:1px solid #edf0f7}
  .order-page .card-header .fw-semibold{font-size:.95rem;color:#0f172a;font-weight:800}
  .order-page .form-label{font-size:.8rem;color:#4b5563;font-weight:600}
  .mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}
  .btn-xs{--bs-btn-padding-y:.2rem;--bs-btn-padding-x:.5rem;--bs-btn-font-size:.72rem;border-radius:999px}

  .order-header-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
  .order-history-btn{border-radius:999px;font-size:.75rem;padding:.26rem .65rem}
  .order-history-btn i{margin-right:.25rem}
  @media (max-width:575.98px){.order-history-btn span{display:none}.order-history-btn i{margin-right:0}}

  .order-aside-sticky{position:sticky; top:12px}
  .svc-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}
  .svc-head__title{font-weight:500;font-size:.92rem;color:#0f172a;white-space:nowrap}
  .svc-head__title::before{content:'ⓘ';font-size:.95rem;margin-right:.15rem;color:var(--order-primary)}
  .svc-head__line{flex:1;height:1px;background:linear-gradient(90deg,#e5e7eb,transparent)}
  .svc-title{display:flex;align-items:center;gap:.5rem;padding:.55rem .8rem;border:1px solid #e5e7f1;border-radius:10px;background:#f9fafb}
  .svc-chip{font-size:.72rem;font-weight:800;color:#036672;background:var(--order-primary-soft);border-radius:999px;padding:.16rem .6rem;white-space:nowrap}
  .svc-bar{color:#9ca3af;user-select:none}
  .svc-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500;color:#0f172a}
  .svc-divider{height:1px;background:linear-gradient(90deg,#f3f4f6,#e5e7f1,#f3f4f6);margin:.65rem 0}

  .sv-wrap{margin-top:.25rem}
  .sv-list{display:flex;flex-direction:column;gap:.6rem}
  .sv-item{position:relative;display:block;border:1px solid #e5e7f1;border-radius:12px;background:#fff;transition:.18s;cursor:pointer;box-shadow:0 6px 18px rgba(2,6,23,.04)}
  .sv-item:hover{border-color:#cfe3ff;box-shadow:0 14px 28px rgba(2,6,23,.08)}
  .sv-item input[type="radio"]{position:absolute;inset:0;margin:0;opacity:0}
  .sv-main{display:flex;gap:.9rem;align-items:center;padding:.7rem .85rem}
  .sv-bullet{width:16px;height:16px;border:2px solid #b7c0cc;border-radius:50%;flex:0 0 16px;position:relative;transition:.18s}
  .sv-left{flex:1 1 auto;min-width:0}
  .sv-title{display:flex;flex-wrap:wrap;gap:2px;align-items:right;font-weight:800}
  .sv-code{font-weight:600;color:#2563eb}
  .sv-name { font-weight: 500; color: #1f2937; }
  .sv-range{color:#6b7280;font-size:.72rem;margin-top:3px}
  .sv-right{display:flex;align-items:center;gap:8px}
  .sv-price{font-size:.88rem;font-weight:500;padding:2px 8px;border-radius:10px;background:#f8fafc;border:1px dashed #e5e7eb;white-space:nowrap;transition:.18s}

  .sv-status{font-size:.60rem;padding:.18rem .42rem;border-radius:999px;}
  .sv-status.active{background:#e8f5e9;color:#2e7d32;border:1px solid rgba(46,125,50,.22)}
  .sv-status.down{background:#fff3e0;color:#ef6c00;border:1px solid rgba(239,108,0,.22)}

  .sv-item input[type="radio"]:checked ~ .sv-main{background:linear-gradient(0deg,#f7fbff, #ffffff 40%);border-radius:12px}
  .sv-item input[type="radio"]:checked ~ .sv-main .sv-bullet{border-color:#2563eb}
  .sv-item input[type="radio"]:checked ~ .sv-main .sv-bullet:after{content:"";position:absolute;inset:3px;border-radius:50%;background:#2563eb}
  .sv-item input[type="radio"]:checked ~ .sv-main .sv-price{background:#eef6ff;border-color:#cfe3ff;box-shadow:0 6px 18px rgba(37,99,235,.15)}

  .form-control,.form-select{border-radius:10px;border-color:#d1d5db}
  .form-control:focus,.form-select:focus{border-color:var(--order-primary);box-shadow:0 0 0 .18rem var(--order-primary-soft2)}
  #object_id{font-size:.86rem}

  .order-total-box{background:#e0f7fa;border-radius:10px;border:1px solid #b2ebf2;padding:.7rem .9rem}

  .skeleton{background-image:linear-gradient(90deg,#f2f4f7 0px,#f7f9fc 40px,#f2f4f7 80px);background-size:600px;animation:skele 1.2s infinite linear}
  @keyframes skele{0%{background-position:-100px}100%{background-position:400px}}
  .sv-skeleton{height:64px;border-radius:12px;border:1px solid #eef2f7}

  .selectbox{position:relative}
  .selectbox-toggle{width:100%;display:flex;align-items:center;gap:.55rem;border:1px solid #e5e7f1;border-radius:12px;padding:.55rem .8rem;background:#fff;box-shadow:var(--order-shadow);text-align:left}
  .selectbox-toggle img{width:18px;height:18px;border-radius:4px}
  .selectbox-toggle .sb-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#0f172a;font-weight:500}
  .selectbox-toggle .chev{margin-left:auto;opacity:.7}
  .selectbox-menu{position:absolute;left:0;right:0;z-index:40;margin-top:.3rem;background:#fff;border:1px solid #e5e7f1;border-radius:12px;box-shadow:0 20px 40px rgba(15,23,42,.12);display:none}
  .selectbox.open .selectbox-menu{display:block}
  .selectbox-list{max-height:300px;overflow:auto;padding:.25rem 0}
  .selectbox-option{display:flex;align-items:center;gap:.55rem;padding:.5rem .8rem;cursor:pointer}
  .selectbox-option img{width:18px;height:18px;border-radius:4px}
  .selectbox-option:hover{background:#f9fafb}
  .selectbox-option.active{background:#ecfeff;outline:1px solid var(--order-primary)}
  .selectbox-section{font-size:.72rem;color:#9ca3af;padding:.45rem .85rem;border-top:1px dashed #eef2f7}

  .reactions .react-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .6rem;border:1px solid #e5e7eb;border-radius:999px;cursor:pointer;background:#fff;transition:.15s}
  .reactions .react-ico{font-size:22px;line-height:1}
  .reactions .react-pill:hover{background:#f9fafb}
  .reactions .react-pill input:checked ~ .react-ico{transform:scale(1.08)}
  .reactions .react-pill input:checked ~ .text-capitalize{font-weight:700}

  .loop-switch{display:flex;align-items:center;gap:.6rem}
  .loop-switch .switch{position:relative;width:48px;height:28px;display:inline-block;flex:0 0 48px}
  .loop-switch .switch input{opacity:0;width:0;height:0}
  .loop-switch .slider{position:absolute;inset:0;cursor:pointer;background:#e5e7eb;border:1px solid #d1d5db;transition:.2s;border-radius:999px}
  .loop-switch .slider:before{content:"";position:absolute;height:22px;width:22px;left:3px;top:50%;transform:translateY(-50%);background:white;border-radius:999px;box-shadow:0 4px 10px rgba(2,6,23,.14);transition:.2s}
  .loop-switch input:checked + .slider{background:rgba(0,188,212,.25);border-color:rgba(0,188,212,.55)}
  .loop-switch input:checked + .slider:before{transform:translate(20px, -50%);box-shadow:0 6px 14px rgba(0,188,212,.18)}
  .loop-switch .loop-label{font-weight:700;color:#0f172a;user-select:none}

  .loop-notice{
    background:#ecfeff;
    border:1px solid rgba(0,188,212,.35);
    color:#075985;
    border-radius:12px;
    padding:.6rem .75rem;
    font-size:.86rem;
  }

  /* ✅ mô tả hiển thị dạng text an toàn */
  #service_desc{ white-space: pre-line; }



:root{
    --bn-h:52px;                      /* nhỏ gọn hơn */
    --bn-n:5;
    --bn-brand: var(--theme-default,#3b82f6);
    --bn-brand2:#06b6d4;
    --bn-bg: rgba(255,255,255,.96);
    --bn-border:#e7eef7;
    --bn-text:#6b7280;
    --bn-active:#0f172a;
    --bn-shadow: 0 14px 34px rgba(2,6,23,.12);
  }
  [data-theme="dark"] .bn{
    --bn-bg: rgba(31,35,41,.92);
    --bn-border: rgba(255,255,255,.08);
    --bn-text:#cbd5e1;
    --bn-active:#ffffff;
    --bn-shadow: 0 16px 40px rgba(0,0,0,.38);
  }

  .bn-spacer{height:calc(var(--bn-h) + env(safe-area-inset-bottom))}
  .bn{
    position:fixed; left:10px; right:10px; bottom:10px; z-index:1050;
    background:var(--bn-bg); border:1px solid var(--bn-border);
    border-radius:16px; box-shadow:var(--bn-shadow);
    padding:6px 8px calc(6px + env(safe-area-inset-bottom));
    backdrop-filter:saturate(140%) blur(10px);
    touch-action:manipulation;
  }
  .bn-row{
    display:grid; grid-template-columns:repeat(var(--bn-n),1fr);
    align-items:end; gap:2px; max-width:760px; margin:0 auto; position:relative
  }

  /* ===== UNDERLINE CHẠY MƯỢT (không dùng plate) ===== */
  .bn-underline{
    position:absolute; left:0; bottom:2px; z-index:0;
    width:calc(100%/var(--bn-n)); height:2px; border-radius:2px;
    background:linear-gradient(90deg,var(--bn-brand),var(--bn-brand2));
    transform:translateX(calc(var(--idx) * 100%));
    transition:transform .28s cubic-bezier(.22,.8,.22,1);
    will-change:transform;
  }

  /* ===== ITEM ===== */
  .bn-item{
    --scale:1; --op:.78; --lift:0px;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:3px; padding:6px 0 4px; text-decoration:none; position:relative; z-index:1;
    color:var(--bn-text);
    transform:translateY(var(--lift)); transition:transform .18s, color .18s;
  }
  .bn-icon{
    width:28px; height:28px; border-radius:10px; display:grid; place-items:center;
    transform:scale(var(--scale)); transition:transform .18s;
  }
  .bn-item .bn-label{font-size:.74rem; opacity:var(--op); transition:opacity .18s, color .18s}
  .bn-item i{font-size:16px}

  /* active: phóng nhẹ + icon gradient + chữ sáng */
  .bn-item.is-active{ --scale:1.06; --op:1; --lift:-1px; color:var(--bn-active) }
  .bn-item.is-active i{
    background: linear-gradient(180deg,var(--bn-brand),var(--bn-brand2));
    -webkit-background-clip:text; background-clip:text; color:transparent;
    filter: drop-shadow(0 1px 6px rgba(59,130,246,.28));
  }

  .bn-item--primary .bn-icon{ width:30px; height:30px }

  /* ripple nhỏ */
  .bn-item:active .bn-icon::after{
    content:""; position:absolute; inset:0; border-radius:inherit;
    background:radial-gradient(closest-side, rgba(59,130,246,.16), transparent 70%);
    animation:bn-r .28s ease-out;
  }
  @keyframes bn-r{from{opacity:1}to{opacity:0}}

  /* Ẩn trên desktop */
  @media (min-width: 992px){
    .bn,.bn-spacer{display:none!important}
  }
  @media (prefers-reduced-motion: reduce){
    .bn-underline,.bn-item,.bn-icon{transition:none}
  }



/* ===== THEME giống "ĐƠN HÀNG ĐÃ MUA" (chỉ CSS) ===== */
:root{
  --pri:#6d4cff; --pri2:#8b6bff;f
  --ink:#0f172a; --muted:#64748b;
  --card:#fff; --soft:#fafaff; --line:#eef2f7;
  --ok:#16a34a; --warn:#f59e0b; --err:#ef4444;
}

/* Nền rất nhẹ */
body{ background:linear-gradient(180deg,#fbfbff, #f7f7ff 26%, #ffffff) }

/* Card & Header */
.card{
  border:1px solid var(--line) !important;
  border-radius:16px !important;
  background:var(--card) !important;
  box-shadow:0 10px 28px rgba(17,24,39,.06) !important;
}
.card-header{
  background:linear-gradient(135deg, rgba(109,76,255,.10), rgba(139,107,255,.06)) !important;
  border-bottom:1px solid var(--line) !important;
  border-top-left-radius:16px !important; border-top-right-radius:16px !important;
}
.card-title{
  margin:0; color:var(--ink); font-weight:800; letter-spacing:.3px;
  text-transform:uppercase;
}

/* Table (giống phần đơn hàng) */
.table thead th{
  background:linear-gradient(135deg, #f6f7ff, #ffffff) !important;
  color:#334155 !important; border-bottom:1px solid var(--line) !important;
}
.table td, .table th{ vertical-align:middle }
.table tbody tr{ transition:background .15s ease }
.table tbody tr:hover{ background:#fcfcff !important }

/* Badge (nhẹ nhàng, bo tròn) */
.badge{ border-radius:10px; padding:.38rem .6rem; font-weight:700 }
.bg-success{ background:rgba(22,163,74,.12) !important; color:#15803d !important }
.bg-primary{ background:rgba(109,76,255,.14) !important; color:var(--pri) !important }
.bg-warning{ background:rgba(245,158,11,.14) !important; color:#b45309 !important }
.bg-danger{ background:rgba(239,68,68,.14) !important; color:#b91c1c !important }

/* Nút đồng bộ phong cách */
.btn{ border-radius:12px !important }
.btn-outline-primary{
  border-color:var(--pri) !important; color:var(--pri) !important; background:#fff !important;
}
.btn-outline-primary:hover{
  background:var(--pri) !important; color:#fff !important;
  box-shadow:0 8px 18px rgba(109,76,255,.25);
}
.btn-primary{
  background:linear-gradient(135deg,var(--pri),var(--pri2)) !important;
  border-color:transparent !important;
  box-shadow:0 10px 24px rgba(109,76,255,.28);
}

/* Khối copy số TK, nội dung CK */
.copy-wrap{ display:inline-flex; align-items:center; gap:.5rem; vertical-align:middle }
.copy-wrap .mono{
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  background:#f4f6ff; border:1px solid var(--line); color:var(--ink);
  padding:.35rem .6rem; border-radius:10px; line-height:1; display:inline-block;
}
.copy-wrap .btn{ padding:.25rem .5rem !important; border-radius:10px !important }

/* QR + ô nhập số tiền */
.qr-box img{
  border-radius:14px; border:1px solid var(--line);
  background:
    radial-gradient(120px 120px at 20% 20%, #f8f9ff, transparent 60%),
    radial-gradient(120px 120px at 80% 80%, #f4f6ff, transparent 60%), #fff;
  box-shadow:0 6px 20px rgba(15,23,42,.08);
}
.amount-input{
  border-radius:12px !important; background:var(--soft) !important;
  border:1px solid var(--line) !important; padding:.45rem .75rem !important;
}

/* Text & helper */
.text-muted{ color:var(--muted) !important }
.text-primary{ color:var(--pri) !important }
.text-success{ color:var(--ok) !important }
.text-danger{ color:var(--err) !important }

/* Pagination */
.page-link{ border-radius:10px !important }
.pagination .page-item.active .page-link{
  background:var(--pri) !important; border-color:var(--pri) !important;
}

/* Logo ngân hàng nhẹ bóng */
.card img[alt^="Logo"]{ filter: drop-shadow(0 4px 10px rgba(0,0,0,.06)) }



/* ===== THEME cho trang Điều khoản – không đổi HTML ===== */
.terms-scope{
  --pri:#6d4cff; --pri2:#8b6bff;
  --ink:#0f172a; --muted:#64748b;
  --line:#eef2f7; --card:#ffffff; --soft:#fafaff;
}
.terms-scope .terms-card{
  border:1px solid var(--line);
  border-radius:18px; background:var(--card);
  box-shadow:0 12px 30px rgba(17,24,39,.06);
}
.terms-scope .terms-title{
  font-size:28px; font-weight:800; line-height:1.25;
  background:linear-gradient(135deg,var(--pri),var(--pri2));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
@media (max-width:576px){ .terms-scope .terms-title{ font-size:22px } }

/* Block nội dung */
.terms-scope .terms-block{
  background:#fff; border:1px solid var(--line);
  border-left:6px solid var(--pri);
  border-radius:14px; padding:18px 18px 14px; box-shadow:0 6px 20px rgba(15,23,42,.04);
}
.terms-scope .terms-block + .terms-block{ margin-top:16px }
.terms-scope .terms-block-title{
  font-weight:800; color:var(--ink); margin-bottom:8px;
}

/* Danh sách (giữ li như nguyên bản) */
.terms-scope .terms-block li{
  position:relative; list-style:none; padding-left:22px; margin-bottom:8px; color:#374151;
}
.terms-scope .terms-block li::before{
  content:""; position:absolute; left:0; top:.55em;
  width:8px; height:8px; border-radius:50%;
  background:linear-gradient(135deg,var(--pri),var(--pri2));
  box-shadow:0 0 0 3px rgba(109,76,255,.12);
}

/* Badge dịu mắt */
.terms-scope .badge{ border-radius:10px; padding:.35rem .55rem; font-weight:700 }
.terms-scope .bg-success{ background:rgba(22,163,74,.12) !important; color:#15803d !important }
.terms-scope .bg-primary{ background:rgba(109,76,255,.14) !important; color:#6d4cff !important }
.terms-scope .bg-warning{ background:rgba(245,158,11,.14) !important; color:#b45309 !important }
.terms-scope .bg-danger{ background:rgba(239,68,68,.14) !important; color:#b91c1c !important }



.checkout-hero{border-radius:16px;background:linear-gradient(135deg,#f8fafc,#eef2ff);border:1px solid #eef1f4}
  .chip{display:inline-flex;align-items:center;gap:.45rem;padding:.28rem .6rem;border-radius:999px;border:1px solid #e5e7eb;background:#fff;font-weight:600;font-size:.8rem}
  .sticky{position:sticky;top:88px}
  .shadow-soft{box-shadow:0 10px 30px rgba(0,0,0,.06)}



.progress-scope{
    --pri:#6366f1; --pri2:#8b5cf6;
    --ink:#0f172a; --muted:#64748b;
    --line:#eef2f7; --soft:#fafaff; --card:#ffffff;
    --run:#0ea5e9; --done:#10b981; --cancel:#ef4444; --wait:#f59e0b;
  }
  .progress-header{
    background:linear-gradient(135deg, rgba(99,102,241,.08), rgba(139,92,246,.08));
    border:1px solid var(--line); border-radius:18px; padding:18px 20px;
  }
  .ph-eyebrow{
    letter-spacing:.08em; text-transform:uppercase; font-weight:800;
    font-size:.72rem; color:var(--muted);
  }
  .ph-btn{
    border-radius:12px; font-weight:700; border:1px solid #e5e7eb;
  }

  .progress-card{
    border:1px solid var(--line); border-radius:18px !important;
    box-shadow:0 12px 30px rgba(17,24,39,.06) !important; background:var(--card);
  }
  .progress-table thead th{
    background:#f8fafc; border-bottom:1px solid var(--line);
  }
  .progress-table tbody tr:hover{ background:var(--soft); }

  .ph-badge{
    font-weight:700; padding:.45rem .6rem; border-radius:.65rem; font-size:.82rem;
    display:inline-flex; align-items:center; gap:.4rem;
  }
  .ph-badge.is-running{ background:rgba(14,165,233,.12); color:#0369a1; }
  .ph-badge.is-done{ background:rgba(16,185,129,.12); color:#047857; }
  .ph-badge.is-canceled{ background:rgba(239,68,68,.12); color:#b91c1c; }
  .ph-badge.is-waiting{ background:rgba(245,158,11,.12); color:#b45309; }

  .ph-code{
    background:#f8fafc; border:1px dashed #e5e7eb; padding:.5rem .65rem;
    border-radius:.6rem; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  }
  .ph-copy{ border-color:#e2e8f0; color:#334155; border-radius:.55rem; }
  .ph-copy:hover{ background:#eef2ff; color:#4f46e5; border-color:#c7d2fe; }



:root{
    --brand: var(--theme-default, #171621);
    --ring: rgba(23,22,33,.12);
    --stroke:#e6e8ee;
    --soft:#f6f7fb;
    --radius:16px;
  }

  .note-card{ border-radius:var(--radius) }

  .soft-alert{
    background: linear-gradient(180deg,#ffffff,#fafbff);
    border:1px solid var(--stroke);
    border-left:5px solid var(--brand);
    box-shadow:0 10px 24px rgba(0,0,0,.05);
  }

  /* Card sản phẩm */
  .product-card{
    border-radius:var(--radius);
    box-shadow:0 8px 24px rgba(0,0,0,.06);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    border:1px solid var(--stroke);
    background:#fff;
    overflow:hidden;
  }
  .product-card:hover{
    transform: translateY(-4px);
    box-shadow:0 16px 32px rgba(0,0,0,.09);
    border-color: rgba(23,22,33,.18);
  }

  .img-wrap{ position:relative; overflow:hidden; }
  .img-wrap::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg,transparent 55%, rgba(0,0,0,.06));
    opacity:.6; pointer-events:none;
  }
  .img-wrap img.card-img-top{
    height:220px; width:100%; object-fit:cover;
    display:block;
  }

  .price-badge{
    position:absolute; top:.6rem; right:.6rem;
    padding:.35rem .6rem; font-weight:700; font-size:.9rem;
    color:#fff;
    background: linear-gradient(135deg, var(--brand), #2a2a36);
    border-radius:12px;
    box-shadow:0 6px 16px rgba(0,0,0,.2);
    border:1px solid rgba(255,255,255,.15);
  }
  .stock-chip{
    position:absolute; left:.6rem; bottom:.6rem;
    padding:.25rem .55rem; font-size:.8rem; border-radius:999px;
    backdrop-filter: blur(6px);
    border:1px solid rgba(255,255,255,.35);
  }
  .stock-in{ color:#0f5132; background:rgba(25,135,84,.15) }
  .stock-out{ color:#842029; background:rgba(220,53,69,.18) }

  .title-line{
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
    overflow:hidden; min-height:2.4em;
  }

  .btn-ghost-dark{
    border:1px solid var(--stroke);
    border-radius:12px; background:#fff; color:#111827;
    padding:.7rem .9rem;
    transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
  }
  .btn-ghost-dark:hover{
    border-color: var(--brand);
    box-shadow: 0 0 0 .2rem var(--ring);
  }



.product-hero{
    border-radius:16px;
    background: linear-gradient(135deg, #f8fafc, #eef2ff);
    border:1px solid #eef1f4;
  }
  .chip{
    display:inline-flex;align-items:center;gap:.4rem;
    padding:.25rem .6rem;border-radius:999px;font-weight:600;
    border:1px solid #e5e7eb;background:#fff;color:#111827;font-size:.78rem;
  }
  .price-lg{font-size:1.9rem;font-weight:800; letter-spacing:.2px}
  .muted{color:#6b7280}
  .bullet i{color:#16a34a}
  .sticky-card{position:sticky; top:90px}
  .code-mono{font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
  .shadow-soft{box-shadow:0 10px 30px rgba(0,0,0,.06)}



  :root{
    --order-primary:#00bcd4;
    --order-primary-soft:rgba(0,188,212,.08);
    --order-primary-soft2:rgba(0,188,212,.14);
    --order-bg:#f4f7fb;
    --order-border:#e5e7f5;
    --order-card-radius:14px;
    --order-shadow:0 10px 30px rgba(2,6,23,.06);
    --stroke:#e5e7eb;
  }

  html{font-size:14px}
  body{background:var(--order-bg);}
  .order-page{font-size:.92rem}

  .order-page .card{
    border-radius:var(--order-card-radius);
    border:1px solid var(--order-border);
    box-shadow:var(--order-shadow);
    background:#fff
  }
  .alert-soft{
    background:#fff7f7;border:1px solid #ffdede;color:#991b1b;
    border-radius:12px;padding:.65rem .85rem;margin-bottom:12px
  }
  .order-page .card-header{
    background:#fff;
    border-bottom:1px solid #edf0f7
  }

  .order-page .card-header .fw-semibold{
    font-size:.95rem;color:#0f172a;font-weight:800
  }

  .order-page .form-label{
    font-size:.8rem;color:#4b5563;font-weight:600;margin-bottom:6px
  }

  /* inputs đồng bộ */
  .order-page .form-control,
  .order-page .form-select{
    height:52px;
    padding:.55rem .8rem;
    border-radius:12px;
    border:1px solid #d1d5db;
    box-shadow:none;
  }
  .order-page .form-control:focus,
  .order-page .form-select:focus{
    border-color:var(--order-primary);
    box-shadow:0 0 0 .18rem var(--order-primary-soft2)
  }

  .btn-black{
    width:100%;
    height:48px;
    border-radius:12px;
    border:0;
    background:#111;
    color:#fff;
    font-weight:800;
  }

  .btn-xs{
    --bs-btn-padding-y:.2rem;
    --bs-btn-padding-x:.5rem;
    --bs-btn-font-size:.72rem;
    border-radius:999px
  }

  .order-header-bar{
    display:flex;align-items:center;justify-content:space-between;gap:.75rem
  }

  .order-history-btn{
    border-radius:999px;
    font-size:.75rem;
    padding:.26rem .65rem
  }
  .order-history-btn i{margin-right:.25rem}
  @media (max-width:575.98px){
    .order-history-btn span{display:none}
    .order-history-btn i{margin-right:0}
  }

  /* box info giống style “panel” bên order */
  .info-box{
    border:1px solid #e5e7f1;
    border-radius:12px;
    background:#fff;
    padding:.8rem .9rem;
    height:100%;
  }
  .info-box .small{color:#6b7280}

  /* price tag */
  #servicePriceText{
    background:rgba(0,188,212,.08);
    border:1px solid rgba(0,188,212,.25);
    color:#075985;
    border-radius:12px;
    padding:.45rem .65rem;
  }

  /* otp alert */
  .otp-alert{
    background:#ecfeff;
    border:1px solid rgba(0,188,212,.35);
    color:#075985;
    border-radius:12px;
  }
