/* =================== BUILD PC PAGE =================== */
.build-hero{background:linear-gradient(135deg,#0b1220,#1a1f3a,#0b1220);color:#fff;padding:60px 0 50px;position:relative;overflow:hidden}
.build-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 350px at 50% 0%,rgba(255,90,31,.18),transparent 60%)}
.build-hero .container{position:relative;text-align:center}
.build-hero .eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;background:rgba(255,90,31,.15);border:1px solid rgba(255,90,31,.3);border-radius:50px;font-size:13px;font-weight:600;color:#ffb38a;margin-bottom:16px}
.build-hero h1{color:#fff;margin-bottom:14px}
.build-hero h1 .grad{background:linear-gradient(90deg,var(--primary),#ffb38a,var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}
.build-hero p{color:#cbd5e1;max-width:680px;margin:0 auto;font-size:17px}

/* =================== STEPPER =================== */
.stepper{display:flex;justify-content:center;align-items:center;gap:0;margin-top:36px;flex-wrap:wrap}
.step{display:flex;align-items:center;gap:10px}
.step .num{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.1);border:2px solid rgba(255,255,255,.2);color:#fff;display:grid;place-items:center;font-weight:800;font-size:14px;transition:.3s}
.step .num.active{background:var(--primary);border-color:var(--primary);box-shadow:0 0 0 4px rgba(255,90,31,.25)}
.step .lbl{font-size:13px;color:#cbd5e1;font-weight:600}
.step .line{width:50px;height:2px;background:rgba(255,255,255,.15);margin:0 14px}

/* =================== LAYOUT =================== */
.builder-section{padding:50px 0 80px;background:linear-gradient(180deg,#0b1220 0%,#0b1220 80px,var(--bg) 80px)}
.builder-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:start}

/* =================== FORM CARD =================== */
.builder-card{background:#fff;border-radius:18px;box-shadow:var(--shadow-lg);padding:34px;position:relative;overflow:hidden}
.builder-card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--primary),#ffb38a,var(--accent))}
.builder-card h2{font-size:24px;margin-bottom:8px}
.builder-card .sub{color:var(--muted);font-size:14px;margin-bottom:26px}

.section-label{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--dark);margin:24px 0 12px;font-size:15px}
.section-label .ic{width:28px;height:28px;border-radius:8px;background:var(--primary-light);color:var(--primary);display:grid;place-items:center;font-size:14px}

/* Purpose chips */
.chips-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.chip{display:flex;align-items:center;gap:8px;padding:14px;border:2px solid var(--border);border-radius:12px;cursor:pointer;font-size:14px;font-weight:600;transition:.2s;background:#fff;user-select:none}
.chip .ic{font-size:20px}
.chip:hover{border-color:var(--primary);transform:translateY(-2px)}
.chip.active{background:linear-gradient(135deg,var(--primary),#ff8a4c);color:#fff;border-color:var(--primary);box-shadow:0 8px 16px rgba(255,90,31,.3)}

/* App input */
.app-input-row{display:flex;gap:8px;align-items:stretch}
.app-input-wrap{position:relative;flex:1;min-width:0}
.app-input-wrap .input{width:100%}
.app-suggest-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:50;max-height:320px;overflow-y:auto;margin:0;padding:4px;list-style:none;background:var(--card,#fff);border:1px solid var(--border,#e5e7eb);border-radius:10px;box-shadow:0 10px 30px rgba(15,23,42,.12)}
.app-suggest-list[hidden]{display:none}
.app-suggest-list li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--text,#0f172a);line-height:1.3}
.app-suggest-list li:hover,.app-suggest-list li.is-active{background:linear-gradient(135deg,rgba(255,90,31,.12),rgba(255,138,76,.08));color:var(--primary,#ff5a1f)}
.app-suggest-list .as-icon{flex:0 0 22px;text-align:center;font-size:16px}
.app-suggest-list .as-name{flex:1;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-suggest-list .as-name mark{background:rgba(255,90,31,.18);color:inherit;padding:0 2px;border-radius:3px}
.app-suggest-list .as-meta{flex:0 0 auto;font-size:11px;color:var(--muted,#64748b);font-weight:500;padding:2px 8px;background:var(--bg,#f1f5f9);border-radius:50px}
.app-suggest-list li.is-empty{justify-content:center;color:var(--muted,#64748b);cursor:default;font-style:italic}
.app-suggest-list li.is-empty:hover{background:transparent;color:var(--muted,#64748b)}
.suggestions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;align-items:center}
.suggestions small{color:var(--muted);margin-right:4px;font-size:12px}
.suggest{padding:5px 12px;background:var(--bg);border:1px solid var(--border);border-radius:50px;font-size:12px;cursor:pointer;transition:.2s;color:var(--text-2)}
.suggest:hover{background:var(--primary);color:#fff;border-color:var(--primary)}
.app-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;min-height:8px}
.app-tag{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:linear-gradient(135deg,#eff6ff,#dbeafe);color:#1e40af;border-radius:50px;font-size:13px;font-weight:600;border:1px solid #bfdbfe}
.app-tag button{color:#1e40af;font-weight:bold;font-size:18px;line-height:1;padding:0;width:18px;height:18px}
.app-tag button:hover{color:var(--danger)}

/* Range */
.range-row{display:flex;align-items:center;gap:14px}
.range-row input[type=range]{flex:1;accent-color:var(--primary);height:6px}
.range-val{min-width:120px;text-align:right;font-weight:700;color:var(--primary);font-size:14px}

/* Row group */
.row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}

.submit-row{margin-top:30px;display:flex;gap:10px}
.submit-row .btn{flex:1}

/* =================== RESULT CARD =================== */
.result-card{background:#fff;border-radius:18px;box-shadow:var(--shadow-lg);padding:34px;position:sticky;top:90px;min-height:600px}

.result-empty{text-align:center;padding:60px 20px;color:var(--muted)}
.result-empty .big-ic{font-size:90px;margin-bottom:18px;opacity:.4;display:block}
.result-empty h3{color:var(--dark);margin-bottom:10px;font-size:20px}
.result-empty p{font-size:14px}

.result-tier{display:inline-block;padding:6px 14px;background:linear-gradient(90deg,var(--primary),#ff8a4c);color:#fff;border-radius:50px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px}
.result-name{font-size:24px;font-weight:800;color:var(--dark);margin-bottom:8px;line-height:1.3}
.result-desc{color:var(--muted);font-size:14px;margin-bottom:18px}

.analysis-box{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:1px solid #bbf7d0;border-radius:12px;padding:14px;margin-bottom:20px;font-size:13px;color:#166534}
.analysis-box.warn{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#fcd34d;color:#92400e}
.analysis-box strong{display:block;margin-bottom:4px}

.spec-list{list-style:none;margin-bottom:20px}
.spec-list li{display:flex;align-items:flex-start;gap:14px;padding:12px;border-bottom:1px solid var(--border-2);transition:.2s}
.spec-list li:hover{background:var(--bg)}
.spec-list .spec-ic{width:40px;height:40px;border-radius:10px;background:var(--primary-light);color:var(--primary);display:grid;place-items:center;font-size:18px;flex-shrink:0}
.spec-list .spec-info{flex:1;min-width:0}
.spec-list .spec-info .lbl{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}
.spec-list .spec-info .val{font-size:14px;color:var(--dark);font-weight:600;margin-top:2px;word-break:break-word}

.price-box{background:linear-gradient(135deg,#fff7ed,#ffedd5);border:2px dashed var(--primary);border-radius:14px;padding:24px;text-align:center;margin-bottom:16px}
.price-box .lbl{font-size:12px;color:#9a3412;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.price-box .price{font-size:36px;font-weight:900;color:var(--primary);margin:6px 0;line-height:1}
.price-box .note{font-size:12px;color:#9a3412}

.perf-bars{margin-bottom:20px}
.perf-row{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.perf-row .label{min-width:70px;font-size:13px;font-weight:600;color:var(--text-2)}
.perf-row .bar{flex:1;height:8px;background:var(--bg);border-radius:4px;overflow:hidden}
.perf-row .fill{height:100%;background:linear-gradient(90deg,var(--primary),#ffb38a);border-radius:4px;transition:width .8s ease}
.perf-row .pct{min-width:36px;text-align:right;font-size:12px;font-weight:700;color:var(--primary)}

.result-actions{display:flex;gap:10px;flex-wrap:wrap}
.result-actions .btn{flex:1;min-width:140px}

@media (max-width:992px){
  .builder-grid{grid-template-columns:1fr}
  .result-card{position:static}
  .chips-grid{grid-template-columns:repeat(2,1fr)}
  .step .line{width:24px;margin:0 6px}
  .step .lbl{display:none}
}
@media (max-width:560px){
  .builder-card,.result-card{padding:22px}
  .chips-grid{grid-template-columns:1fr}
  .row-2{grid-template-columns:1fr}
}

/* ===== BuildPC Customizer (HQ) ===== */
.bp-customizer{margin:18px 0;border:1px solid #e5e7eb;border-radius:14px;padding:14px;background:#fff}
.bp-customizer-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;flex-wrap:wrap;gap:6px}
.bp-customizer-head strong{font-size:15px;color:#111827}
.bp-hint{font-size:12px;color:#6b7280}
.bp-part{display:grid;grid-template-columns:36px 64px 1fr auto;gap:12px;align-items:center;padding:12px 8px;border-bottom:1px dashed #e5e7eb}
.bp-part:last-child{border-bottom:0}
.bp-part-ic{font-size:22px;text-align:center}
.bp-part-thumb{width:64px;height:64px;border-radius:10px;background:#f9fafb;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid #f3f4f6}
.bp-part-thumb img{width:100%;height:100%;object-fit:contain}
.bp-noimg{font-size:24px;opacity:.4}
.bp-part-body{min-width:0}
.bp-part-lbl{font-size:11px;color:#6b7280;text-transform:uppercase;letter-spacing:.06em;font-weight:700;display:flex;align-items:center;gap:8px}
.bp-brand-tag{background:#fef3c7;color:#92400e;padding:1px 8px;border-radius:999px;font-size:10px;text-transform:none;letter-spacing:0;font-weight:700}
.bp-part-name{font-size:14px;font-weight:700;color:#111827;margin:2px 0 6px;line-height:1.3}
.bp-select{width:100%;padding:6px 8px;border:1px solid #d1d5db;border-radius:8px;background:#fff;font-size:13px;color:#111827;cursor:pointer}
.bp-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(234,88,12,.15)}
.bp-part-meta{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px}
.bp-spec{font-size:11px;color:#374151;background:#f3f4f6;padding:2px 8px;border-radius:6px}
.bp-spec b{color:#6b7280;font-weight:600}
.bp-part-price{font-weight:800;color:var(--primary);font-size:15px;white-space:nowrap;text-align:right;min-width:110px}
@media (max-width:640px){
  .bp-part{grid-template-columns:32px 1fr;grid-template-areas:"ic body" "thumb price";row-gap:8px}
  .bp-part-ic{grid-area:ic}
  .bp-part-body{grid-area:body}
  .bp-part-thumb{grid-area:thumb;width:56px;height:56px}
  .bp-part-price{grid-area:price;align-self:end}
}

/* ===== Manual Picker (always visible) ===== */
.manual-picker-section{padding:48px 0;background:#fff8f3}
.manual-picker-section .section-head{text-align:center;margin-bottom:24px}
.manual-picker-section .eyebrow{display:inline-block;background:var(--primary);color:#fff;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.05em;margin-bottom:8px}
.manual-picker-section h2{font-size:26px;font-weight:800;color:#111827;margin:6px 0}
.manual-picker-section .section-sub{font-size:14px;color:#6b7280;max-width:720px;margin:0 auto}
.manual-picker-card{background:#fff;border:1px solid #fed7aa;border-radius:18px;padding:24px;box-shadow:0 8px 24px -10px rgba(234,88,12,.18);max-width:1100px;margin:0 auto}
.manual-total-row{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#fff7ed,#ffedd5);border:2px dashed var(--primary);border-radius:14px;padding:16px 22px;margin:18px 0 14px}
.manual-total-row .lbl{font-size:13px;color:#9a3412;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.manual-total-row .price{font-size:28px;font-weight:900;color:var(--primary);line-height:1}
.manual-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
@media (max-width:560px){
  .manual-total-row{flex-direction:column;gap:8px;text-align:center}
}

/* Manual picker — budget elements */
.manual-budget-bar{background:#fef3c7;color:#92400e;border:1px dashed #fbbf24;border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:13px;line-height:1.5}
.manual-budget-bar.mbb-active{background:#dcfce7;color:#166534;border-color:#86efac}
.manual-budget-bar .mbb-ic{margin-right:6px}
.manual-budget-bar a{color:inherit;text-decoration:underline;font-weight:700}
.bp-cap{background:#e0f2fe;color:#075985;font-size:10px;padding:1px 6px;border-radius:6px;font-weight:600;text-transform:none;letter-spacing:0;margin-left:6px}
.manual-over-budget{flex:1 1 100%;background:#fee2e2;color:#991b1b;border:1px solid #fca5a5;border-radius:8px;padding:8px 12px;margin-top:10px;font-size:13px;font-weight:600;text-align:center}

/* Flash hiệu ứng khi re-render kết quả AI suggest */
@keyframes rcFlash {
  0%   { box-shadow: 0 0 0 0 rgba(234,88,12,.55); }
  60%  { box-shadow: 0 0 0 12px rgba(234,88,12,0); }
  100% { box-shadow: 0 0 0 0 rgba(234,88,12,0); }
}
.rc-flash { animation: rcFlash .9s ease-out; }

/* =============== SHARE MODAL (lưu & chia sẻ link cấu hình) =============== */
.bp-share-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;animation:bpShareIn .18s ease}
.bp-share-backdrop{position:absolute;inset:0;background:rgba(7,12,28,.66);backdrop-filter:blur(4px)}
.bp-share-dialog{position:relative;background:#fff;color:#0f172a;border-radius:16px;max-width:560px;width:calc(100% - 32px);padding:28px 26px 24px;box-shadow:0 30px 80px rgba(0,0,0,.4);animation:bpShareUp .22s cubic-bezier(.2,.7,.3,1)}
.bp-share-close{position:absolute;top:10px;right:12px;width:34px;height:34px;border:0;background:transparent;font-size:24px;line-height:1;cursor:pointer;color:#64748b;border-radius:50%}
.bp-share-close:hover{background:#f1f5f9;color:#0f172a}
.bp-share-dialog h3{margin:0 0 6px;font-size:1.25rem;color:#0f172a}
.bp-share-sub{margin:0 0 18px;color:#475569;font-size:.92rem;line-height:1.5}
.bp-share-linkrow{display:flex;gap:8px;margin-bottom:18px}
.bp-share-input{flex:1;padding:11px 14px;border:1px solid #cbd5e1;border-radius:9px;font-size:.92rem;font-family:Menlo,Consolas,monospace;color:#0f172a;background:#f8fafc}
.bp-share-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.15)}
.bp-share-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.bp-share-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;border-radius:10px;text-decoration:none;font-weight:600;font-size:.92rem;color:#fff;transition:transform .12s,filter .12s}
.bp-share-btn:hover{transform:translateY(-1px);filter:brightness(1.06)}
.bp-share-btn .ic{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;background:rgba(255,255,255,.18);border-radius:50%;font-weight:700}
.bp-share-btn.fb{background:#1877f2}
.bp-share-btn.zalo{background:#0068ff}
.bp-share-btn.tw{background:#000}
.bp-share-btn.mail{background:#475569}
.bp-share-btn.view{background:linear-gradient(135deg,#10b981,#059669)}
@keyframes bpShareIn{from{opacity:0}to{opacity:1}}
@keyframes bpShareUp{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}

/* =============== TRANG XEM CẤU HÌNH ĐÃ CHIA SẺ =============== */
.share-page-section{padding:48px 0 80px}
.share-hero{background:linear-gradient(135deg,#0f172a,#1e293b);color:#fff;padding:42px 0 36px;margin-bottom:34px}
.share-hero .eyebrow{display:inline-block;background:rgba(16,185,129,.18);color:#6ee7b7;padding:5px 12px;border-radius:20px;font-size:.8rem;font-weight:600;margin-bottom:10px}
.share-hero h1{margin:0 0 8px;font-size:1.85rem;line-height:1.25}
.share-hero .meta{display:flex;flex-wrap:wrap;gap:18px;color:#cbd5e1;font-size:.9rem;margin-top:10px}
.share-hero .meta b{color:#fff}
.share-summary{display:grid;grid-template-columns:1fr 320px;gap:24px;margin-bottom:28px}
@media(max-width:880px){.share-summary{grid-template-columns:1fr}}
.share-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:20px;box-shadow:0 4px 18px rgba(15,23,42,.05)}
.share-total-card{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border-radius:14px;padding:22px;box-shadow:0 8px 24px rgba(16,185,129,.25)}
.share-total-card .lbl{opacity:.85;font-size:.85rem;margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}
.share-total-card .price{font-size:2rem;font-weight:800;line-height:1.1}
.share-total-card .sub{opacity:.85;margin-top:8px;font-size:.85rem}
.share-component-list{display:flex;flex-direction:column;gap:12px}
.share-component-item{display:grid;grid-template-columns:60px 1fr auto;gap:14px;align-items:center;padding:12px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;transition:border-color .15s}
.share-component-item:hover{border-color:#94a3b8}
.share-component-item .thumb{width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border-radius:8px;overflow:hidden}
.share-component-item .thumb img{max-width:100%;max-height:100%;object-fit:contain}
.share-component-item .thumb .noimg{font-size:1.6rem;opacity:.5}
.share-component-item .info{min-width:0}
.share-component-item .info .slot-lbl{display:inline-block;background:#eef2ff;color:#4338ca;padding:2px 8px;border-radius:5px;font-size:.72rem;font-weight:700;margin-bottom:4px;text-transform:uppercase;letter-spacing:.4px}
.share-component-item .info .pname{font-weight:600;color:#0f172a;margin:0;font-size:.96rem;line-height:1.3}
.share-component-item .info .meta{font-size:.8rem;color:#64748b;margin-top:3px}
.share-component-item .price{font-weight:700;color:#0f172a;white-space:nowrap}
.share-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:30px}
.share-empty{text-align:center;padding:60px 20px}
.share-empty .icon{font-size:4rem;margin-bottom:14px}
.share-empty h2{margin:0 0 8px}
.share-empty p{color:#64748b;margin:0 0 20px}

/* =============== MODAL ĐẶT MUA / TƯ VẤN =============== */
.bp-order-dialog{max-width:580px}
.bp-order-summary{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:14px 16px;margin:0 0 18px;font-size:.92rem}
.bp-order-summary > div{display:flex;justify-content:space-between;gap:14px;padding:5px 0;color:#475569}
.bp-order-summary .lbl{color:#64748b}
.bp-order-summary .val{color:#0f172a;font-weight:600;text-align:right;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bp-order-summary .hl{border-top:1px dashed #cbd5e1;margin-top:4px;padding-top:8px}
.bp-order-summary .hl .val{color:#059669;font-size:1.05rem;font-weight:800}
.bp-order-form .row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:520px){.bp-order-form .row-2{grid-template-columns:1fr}}
.bp-order-form .field{margin-bottom:12px}
.bp-order-form label{display:block;font-size:.85rem;font-weight:600;color:#0f172a;margin-bottom:5px}
.bp-order-form label .req{color:#dc2626}
.bp-order-form input,.bp-order-form textarea{width:100%;padding:10px 12px;border:1px solid #cbd5e1;border-radius:8px;font-size:.93rem;color:#0f172a;background:#fff;font-family:inherit}
.bp-order-form input:focus,.bp-order-form textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.15)}
.bp-order-form textarea{resize:vertical;min-height:70px}
.bp-order-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.bp-order-actions .btn{flex:1;min-width:140px}
.bp-order-msg{margin-top:12px;padding:10px 12px;border-radius:8px;font-size:.9rem;display:none}
.bp-order-msg.err{display:block;background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}
.bp-order-msg.info{display:block;background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}
.bp-order-msg.ok{display:block;background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}
.bp-order-success{text-align:center;max-width:520px}
.bp-success-ic{width:68px;height:68px;border-radius:50%;background:linear-gradient(135deg,#10b981,#059669);color:#fff;font-size:2.2rem;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;box-shadow:0 8px 22px rgba(16,185,129,.35)}
.bp-order-success h3{color:#0f172a;font-size:1.35rem}
.bp-order-success .bp-share-linkrow{margin-top:14px}
