/* ============================================================================
   TẢI HỘ FILE — giao diện khách (modal workspace)
   Cấu trúc DOM tương ứng: systems/file_download/product_form.php
   Điều khiển trạng thái: js/file-download.js (setView / setStep)
   Section "Trang chi tiết đơn hàng" ở cuối file phục vụ order_view.php.
   ========================================================================== */

/* --- Nền tảng dùng chung --- */
.fd-client,.fd-client *,.fd-client *::before,.fd-client *::after{box-sizing:border-box}
.fd-client{--fd-blue:#2579f2;--fd-blue-dark:#1765d5;--fd-blue-soft:#eef5ff;--fd-ink:#17243b;--fd-muted:#64748b;--fd-line:#e5eaf0;--fd-soft:#f7f9fc;color:var(--fd-ink);font-family:inherit}
.fd-client [hidden]{display:none!important}
.fd-client button,.fd-client input{font:inherit}
/* Theme site (css/style.css) ep `input:not([type="submit"]){min-height:var(--inputs-height);
   line-height:var(--inputs-height)}` = 48px len MOI o nhap. Tra lai quyen kiem soat chieu cao
   cho modal. Theme cung dat `input[type="search"]{margin-bottom:10px}` - neu khong
   reset, o tim file se cao hon 10px so voi cac nut thao tac ben canh.
   Chi scope trong .fd-app (modal), KHONG dung .fd-client de tranh de len
   .fd-order-search cua trang chi tiet don hang. */
.fd-app input,.fd-app select,.fd-app textarea{min-height:0;margin:0;line-height:normal}
.fd-client :focus-visible,.fd-ask :focus-visible{outline:3px solid #a8c8ff;outline-offset:2px}

/* --- Nút dùng chung ---
   Theme site (css/style.css) style nút submit bằng selector
   `button[type="submit"]:not(.w-btn)` (độ ưu tiên 0,2,1) kèm nền gradient
   var(--color-content-primary-grad) = xanh → hồng. Rule nền dưới đây dùng
   `:is(button,a).fd-btn` (0,2,1, đứng sau nên thắng) và biến thể dùng
   `.fd-btn.fd-btn-*` (0,3,0) để nút trong module luôn là màu phẳng. */
:is(.fd-client,.fd-ask) :is(button,a).fd-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:8px 14px;border:1px solid transparent;border-radius:9px;background:transparent;background-image:none;box-shadow:none;color:var(--fd-ink);font-size:13px;font-weight:650;letter-spacing:normal;text-transform:none;text-shadow:none;text-decoration:none;cursor:pointer;white-space:nowrap}
:is(.fd-client,.fd-ask) .fd-btn:disabled{opacity:.5;cursor:not-allowed}
:is(.fd-client,.fd-ask) .fd-btn.fd-btn-lg{min-height:46px;padding:12px 20px;font-size:14px}
:is(.fd-client,.fd-ask) .fd-btn.fd-btn-primary{border-color:#2579f2;background:#2579f2;color:#fff;box-shadow:0 1px 2px rgba(16,24,40,.05),0 4px 10px rgba(37,121,242,.22)}
:is(.fd-client,.fd-ask) .fd-btn.fd-btn-primary:not(:disabled):hover{border-color:#1765d5;background:#1765d5;box-shadow:0 2px 4px rgba(16,24,40,.06),0 6px 14px rgba(37,121,242,.28)}
:is(.fd-client,.fd-ask) .fd-btn.fd-btn-primary:disabled{box-shadow:none}
/* Nút huỷ: có viền rõ ràng thay vì chữ trần. */
:is(.fd-client,.fd-ask) .fd-btn.fd-btn-soft{border-color:#dde4ee;background:#fff;color:#5b6a80}
:is(.fd-client,.fd-ask) .fd-btn.fd-btn-soft:not(:disabled):hover{border-color:#eec8c4;background:#fdf5f4;color:#b42318}
:is(.fd-client,.fd-ask) .fd-btn.fd-btn-line{border-color:#d4ddea;background:#fff;color:#33415a}
:is(.fd-client,.fd-ask) .fd-btn.fd-btn-line:not(:disabled):hover{border-color:#b4c4da;background:#f6f9fd}
:is(.fd-client,.fd-ask) .fd-btn.fd-btn-ghost{border-color:#c9dcf5;background:#f6faff;color:#1d5fb7}
:is(.fd-client,.fd-ask) .fd-btn.fd-btn-ghost:not(:disabled):hover{border-color:#a6c7ee;background:#eaf3ff}
:is(.fd-client,.fd-ask) .fd-btn.fd-btn-quiet{color:#9a2f26}
:is(.fd-client,.fd-ask) .fd-btn.fd-btn-quiet:not(:disabled):hover{background:#fdf1f0}
:is(.fd-client,.fd-ask) .fd-btn.fd-btn-danger-line{border-color:#e6bcb7;background:#fff;color:#a73b33}
:is(.fd-client,.fd-ask) .fd-btn.fd-btn-danger-line:not(:disabled):hover{border-color:#d69a94;background:#fff6f5}

/* --- CTA ngoài trang sản phẩm (san-pham.php) ---
   Nằm NGOÀI .fd-client nên dùng màu tuyệt đối, không dùng biến --fd-*.
   Bố cục ngang: mô tả bên trái, hành động bên phải. */
.fd-cta{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:14px 16px;border:1px solid #e5eaf0;border-left:3px solid #2579f2;border-radius:10px;background:#fff}
.fd-cta *{box-sizing:border-box}
.fd-cta-main{display:flex;align-items:center;gap:13px;min-width:0;flex:1 1 260px}
.fd-cta-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#eef5ff;color:#2579f2;font-size:19px;flex:none}
.fd-cta-text{display:grid;gap:3px;min-width:0}
.fd-cta-text strong{color:#111827;font-size:16.5px;font-weight:700;line-height:1.3}
.fd-cta-text>span{color:#64748b;font-size:12.5px}
.fd-cta-side{display:flex;align-items:center;flex:none}
.fd-cta .modern_buy_btn{display:inline-flex!important;width:auto!important;min-height:46px;align-items:center;justify-content:center;gap:9px;margin:0!important;padding:11px 20px!important;border:0!important;border-radius:9px!important;background:#2579f2!important;color:#fff!important;font-size:14px!important;font-weight:700!important;box-shadow:none!important}
.fd-cta .modern_buy_btn:hover{background:#1765d5!important}
@media(max-width:600px){
 .fd-cta{align-items:stretch;flex-direction:column;gap:12px;padding:13px 14px}
 /* Quan trong: o che do cot, `flex:1 1 260px` cua .fd-cta-main bien flex-basis
    thanh CHIEU CAO 260px -> sinh mot khoang trong lon phia tren. Phai tra ve auto. */
 .fd-cta-main{flex:0 0 auto;gap:11px}
 .fd-cta-icon{width:38px;height:38px;font-size:17px}
 .fd-cta-text strong{font-size:15.5px}
 .fd-cta-side{display:block;flex:0 0 auto}
 .fd-cta .modern_buy_btn{width:100%!important;min-height:48px;justify-content:center}
}

/* --- Vỏ modal --- */
#fd-product-dialog{width:min(1040px,calc(100vw - 32px));height:min(760px,calc(100vh - 40px));max-width:none;max-height:none;margin:auto;padding:0;border:0;border-radius:14px;background:#fff;color:#17243b;box-shadow:0 24px 70px rgba(15,23,42,.22);overflow:hidden}
#fd-product-dialog[open]{display:flex}
#fd-product-dialog::backdrop{background:rgba(15,23,42,.55)}
.fd-app{display:grid;grid-template-rows:auto minmax(0,1fr);width:100%;min-width:0}

.fd-topbar{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--fd-line);background:#fff}
.fd-topbar-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--fd-blue-soft);color:var(--fd-blue);font-size:18px;flex:none}
.fd-topbar-text{min-width:0;flex:1}
.fd-topbar-text h2{margin:0;color:#111827;font-size:17px;line-height:1.25}
.fd-topbar-text p{margin:2px 0 0;color:var(--fd-muted);font-size:12px}
.fd-close{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:9px;background:#f2f5f9;color:#64748b;cursor:pointer;flex:none}
.fd-close:hover{background:#e7ecf3;color:#111827}

/* --- Bố cục workspace: cột bước + vùng nội dung --- */
.fd-body{display:grid;grid-template-columns:184px minmax(0,1fr);min-height:0}
.fd-rail{border-right:1px solid var(--fd-line);background:var(--fd-soft);overflow:auto}
.fd-rail-list{display:grid;align-content:start;gap:4px;margin:0;padding:14px 10px;list-style:none}
.fd-rail-step{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:start;gap:10px;padding:10px;border-radius:9px;color:#8996a8}
.fd-rail-mark{display:grid;place-items:center;width:26px;height:26px;border:1px solid #d3dcea;border-radius:50%;background:#fff;font-size:12px;font-weight:800;line-height:1}
.fd-rail-text{display:grid;gap:2px;min-width:0}
.fd-rail-text strong{color:#53627a;font-size:13px;font-weight:700}
.fd-rail-text small{color:#93a0b4;font-size:11.5px;line-height:1.35}
.fd-rail-step.is-active{background:var(--fd-blue-soft)}
.fd-rail-step.is-active .fd-rail-mark{border-color:var(--fd-blue);background:var(--fd-blue);color:#fff}
.fd-rail-step.is-active .fd-rail-text strong{color:#1a4fa8}
.fd-rail-step.is-active .fd-rail-text small{color:#5c86c6}
.fd-rail-step.is-complete .fd-rail-mark{border-color:#22c55e;background:#22c55e;color:#fff;font-size:11px}
.fd-rail-step.is-complete .fd-rail-text strong{color:#2f7d4c}

.fd-main{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0}
.fd-notice{display:grid;gap:8px;padding:0 20px}
/* Khong co thong bao nao -> grid rong, tu thu ve 0; padding-top chi them khi co noi dung. */
.fd-notice:has(> :not([hidden])){padding-top:14px}
.fd-status{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;border-radius:9px;background:#eff6ff;color:#1e4e8c;font-size:12.5px;line-height:1.5}
.fd-status.fd-error{background:#fdf2f2;color:#a8362c}
.fd-status i{margin-top:2px}
.fd-notice-actions{display:flex;gap:8px;flex-wrap:wrap}
.fd-notice-actions:not(:has(> :not([hidden]))){display:none}

/* --- Khung panel chung: đầu cố định / thân cuộn / chân cố định --- */
.fd-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;min-width:0}
.fd-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px 14px}
.fd-panel-title h3{margin:0;color:#111827;font-size:17px;line-height:1.3}
.fd-panel-title p{margin:4px 0 0;color:var(--fd-muted);font-size:12.5px}
.fd-chip{flex:none;padding:5px 10px;border-radius:999px;background:var(--fd-blue-soft);color:#2457af;font-size:11.5px;font-weight:700}
.fd-panel-scroll{min-height:0;padding:0 20px;overflow:auto;overscroll-behavior:contain}
.fd-panel-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 20px;border-top:1px solid var(--fd-line);background:#fff}
.fd-foot-right{display:flex;align-items:center;gap:8px}

/* --- Bước 1: quản lý nguồn --- */
.fd-srcs{display:grid;gap:10px}
.fd-src{display:grid;gap:10px;padding:14px;border:1px solid var(--fd-line);border-radius:11px;background:#fff}
.fd-src:focus-within{border-color:#b9d4f7;box-shadow:0 0 0 3px rgba(37,121,242,.08)}
.fd-src-head{display:flex;align-items:center;gap:9px;min-width:0}
.fd-src-num{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--fd-blue-soft);color:#1d4ed8;font-size:11px;font-weight:800;flex:none}
.fd-src-name{color:#33415a;font-size:12.5px;font-weight:700;white-space:nowrap}
.fd-provider-badge{padding:3px 7px;border-radius:5px;background:#e8f1fe;color:#1d5fb7;font-size:10px;font-weight:800;letter-spacing:.04em;flex:none}
.fd-remove-source{display:inline-flex;align-items:center;gap:5px;min-height:28px;margin-left:auto;padding:4px 8px;border:0;border-radius:7px;background:transparent;color:#b42318;font-size:11.5px;font-weight:650;cursor:pointer;flex:none}
.fd-remove-source:hover{background:#fdf1f0}
/* URL ~70% / mã trích xuất ~30%, tự xuống hàng khi không đủ chỗ. */
.fd-src-fields{display:flex;flex-wrap:wrap;gap:10px 12px;min-width:0}
.fd-src-url{flex:7 1 300px;min-width:0}
.fd-src-code{flex:3 1 160px;min-width:0}
.fd-src-fields label{display:grid;grid-template-rows:auto auto;gap:5px;margin:0;min-width:0}
.fd-src-label{color:#5b6a80;font-size:11.5px;font-weight:650;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fd-src-label small{color:#93a0b4;font-weight:500}
.fd-input{position:relative;display:block;min-width:0}
.fd-input>i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#9aa7b8;font-size:13px}
.fd-input input{width:100%;min-width:0;height:42px;padding:0 12px 0 35px;border:1px solid #ccd7e5;border-radius:9px;background:#fff;color:#111827;font-size:13.5px}
.fd-input input:focus{border-color:var(--fd-blue);box-shadow:0 0 0 3px rgba(37,121,242,.1);outline:0}
.fd-add{width:100%;margin:10px 0 18px}
.fd-assure{display:flex;align-items:flex-start;gap:9px;margin:0;color:var(--fd-muted);font-size:12px}
.fd-assure i{margin-top:1px;color:#16a34a;font-size:14px}
.fd-assure span{display:grid;gap:1px}
.fd-assure strong{color:#3f4d63;font-size:12.5px}

/* --- View quét --- */
.fd-scan{grid-template-rows:minmax(0,1fr);place-items:center;padding:20px;overflow:auto}
.fd-scan-body{display:grid;justify-items:center;gap:0;width:100%;max-width:430px;text-align:center}
.fd-scan-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:var(--fd-blue-soft);color:var(--fd-blue);font-size:23px}
.fd-scan-body h3{margin:14px 0 0;color:#111827;font-size:18px}
.fd-scan-body>p{margin:6px 0 0;color:var(--fd-muted);font-size:13px;line-height:1.5}
.fd-scan-stats{display:grid;grid-template-columns:repeat(3,1fr);width:100%;margin:18px 0 14px}
.fd-scan-stats div{display:grid;gap:2px;padding:0 10px;border-right:1px solid var(--fd-line)}
.fd-scan-stats div:last-child{border-right:0}
.fd-scan-stats strong{color:#111827;font-size:17px}
.fd-scan-stats span{color:var(--fd-muted);font-size:11px}
.fd-bar{position:relative;width:100%;height:4px;border-radius:999px;background:#e6ecf4;overflow:hidden}
.fd-bar span{position:absolute;top:0;bottom:0;width:38%;border-radius:inherit;background:var(--fd-blue);animation:fd-slide 1.15s ease-in-out infinite}
@keyframes fd-slide{from{left:-40%}to{left:102%}}
.fd-scan-sources{display:grid;gap:0;width:100%;margin-top:18px;text-align:left}
.fd-scan-src{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid #eef2f7}
.fd-scan-sources .fd-scan-src:last-child{border-bottom:0}
.fd-scan-src>i{width:16px;color:#b6c1d1;text-align:center;font-size:13px;flex:none}
.fd-scan-src.is-done>i{color:#16a34a}
.fd-scan-src.is-active>i{color:var(--fd-blue);font-size:9px}
.fd-scan-src strong{color:#3f4d63;font-size:12.5px;font-weight:650;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fd-scan-src small{color:var(--fd-muted);font-size:11.5px;white-space:nowrap}
.fd-scan-warn{display:flex;align-items:flex-start;gap:7px;margin:18px 0 0;color:#8a4b10;font-size:11.5px;line-height:1.45;text-align:left}
.fd-scan-warn i{margin-top:2px;color:#d97706}
#fd-stop-scan{margin-top:18px}

/* --- Bước 2: file manager + tóm tắt --- */
.fd-select{grid-template-rows:auto minmax(0,1fr)}
.fd-readbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 20px 0;padding:9px 12px;border:1px solid #d7e7dc;border-radius:9px;background:#f6fbf7}
.fd-readbar-ok{color:#16a34a;font-size:14px}
.fd-readbar strong{color:#256b42;font-size:12.5px}
.fd-readbar>span:not(.fd-readbar-badges){flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5c7767;font-size:12px}
.fd-readbar-badges{display:inline-flex;gap:5px;flex-wrap:wrap;flex:none}
#fd-edit-sources{margin-left:auto;flex:none;color:#2457af;font-size:12px}
#fd-edit-sources:hover{background:#eaf3ff}

.fd-select-grid{display:grid;grid-template-columns:minmax(0,1fr) 296px;gap:18px;min-height:0;padding:16px 20px 20px}
.fd-explorer{display:grid;grid-template-rows:auto auto minmax(0,1fr);min-width:0;min-height:0;border:1px solid var(--fd-line);border-radius:11px;background:#fff;overflow:hidden}
.fd-explorer-head{padding:13px 14px 11px;border-bottom:1px solid var(--fd-line)}
.fd-explorer-head h3{margin:0;color:#111827;font-size:14.5px}
.fd-explorer-head p{margin:3px 0 0;color:var(--fd-muted);font-size:12px}
.fd-explorer-tools{display:grid;gap:8px;padding:10px 14px;border-bottom:1px solid var(--fd-line);background:var(--fd-soft)}
/* O tim kiem va cac nut thao tac dung chung 1 hang, cao BANG NHAU (38px). */
.fd-tools-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fd-search{position:relative;display:grid;flex:1 1 160px;min-width:0}
.fd-search>i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#9aa7b8;font-size:12px}
.fd-search input{display:block;width:100%;min-width:0;height:38px;padding:0 36px 0 32px;border:1px solid #d4ddea;border-radius:9px;background:#fff;font-size:13px}
.fd-search input:focus{border-color:var(--fd-blue);box-shadow:0 0 0 3px rgba(37,121,242,.1);outline:0}
.fd-search button{position:absolute;right:3px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:7px;background:transparent;color:#9aa7b8;cursor:pointer}
.fd-search button:hover{background:#eef2f7;color:#5b6a80}
.fd-filters{display:flex;gap:5px;overflow:auto}
.fd-filters button{flex:none;padding:6px 11px;border:0;border-radius:999px;background:#e9eef5;color:#53627a;font:inherit;font-size:11.5px;font-weight:700;cursor:pointer}
.fd-filters button.is-active{background:#dceaff;color:#1a4fa8}
.fd-tool-btns{display:flex;gap:6px;flex:none}
/* Cao DUNG BANG o tim file (38px), khong de line-height lam lech 1px. */
:is(.fd-client,.fd-ask) .fd-tool-btns .fd-btn{height:38px;min-height:38px;padding:0 12px;font-size:12.5px}

.fd-tree{min-height:0;overflow:auto;overscroll-behavior:contain}
.fd-source-tree-group>h4{position:sticky;top:0;z-index:2;margin:0;padding:7px 14px;border-bottom:1px solid var(--fd-line);background:#f1f5fa;color:#5b6a80;font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.fd-node{border-bottom:1px solid #f1f4f8}
.fd-node:last-child{border-bottom:0}
.fd-tree-folder>summary{list-style:none;cursor:pointer}
.fd-tree-folder>summary::-webkit-details-marker{display:none}
.fd-file-row{display:flex;align-items:center;gap:10px;min-width:0;min-height:46px;padding:6px 14px}
.fd-file-row:hover{background:#f8fafd}
.fd-file-row:has(>input:checked){background:#f1f7ff}
.fd-file-row:has(>input:checked):hover{background:#e8f1fe}
.fd-file-row input{width:17px;height:17px;margin:0;accent-color:var(--fd-blue);flex:none;cursor:pointer}
.fd-folder-row::before{content:"\f105";width:9px;color:#8996a8;font-family:FontAwesome;flex:none;transition:transform .15s}
.fd-tree-folder[open]>.fd-folder-row::before{transform:rotate(90deg)}
.fd-folder-icon{color:#e0a80c;font-size:16px;flex:none}
.fd-children{padding-left:18px;border-top:1px solid #f4f7fa;background:#fdfefe}
.fd-empty{padding:40px 16px;color:var(--fd-muted);text-align:center}

/* Badge loại file + tên/ dung lượng: dùng chung cho modal và trang chi tiết đơn. */
.fd-file-type{display:grid;place-items:center;width:32px;height:27px;border-radius:5px;background:#eef2f7;color:#5b6a80;font-size:8.5px;font-weight:800;flex:none}
.fd-type-zip{background:#fff4e5;color:#a15c00}
.fd-type-apk{background:#ecfdf3;color:#087443}
.fd-type-img{background:#f5f3ff;color:#6d28d9}
.fd-type-iso{background:#fff1f2;color:#be123c}
.fd-file-main{display:flex;flex:1;min-width:0;flex-direction:column;gap:1px}
.fd-file-main strong,.fd-file-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fd-file-main strong{color:#1f2937;font-size:13px;font-weight:600}
.fd-file-main small{color:#93a0b4;font-size:10.5px}
.fd-size{margin-left:auto;color:#5b6a80;font-size:11.5px;font-weight:600;white-space:nowrap;flex:none}

.fd-summary{position:sticky;top:0;align-self:start;display:grid;gap:12px;padding:15px;border:1px solid var(--fd-line);border-radius:11px;background:var(--fd-soft)}
.fd-summary h4{margin:0;color:#33415a;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.fd-summary-rows{display:grid;gap:9px;margin:0}
.fd-summary-rows>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.fd-summary-rows dt{color:var(--fd-muted);font-size:12.5px}
.fd-summary-rows dd{margin:0;color:#1f2937;font-size:14px;font-weight:700;text-align:right}
.fd-summary-total{padding-top:9px;border-top:1px solid #dde4ee}
.fd-summary-total dt{color:#33415a;font-weight:650}
.fd-summary-total dd{color:#1765d5;font-size:19px}
.fd-price{margin:0;color:var(--fd-muted);font-size:11.5px;line-height:1.5}
.fd-price.fd-error{color:#b42318}
.fd-price a{display:block;margin-top:4px;color:#2457af}
.fd-summary-actions{display:grid;gap:7px}
:is(.fd-client,.fd-ask) .fd-summary-actions .fd-btn{width:100%;min-height:42px}

/* --- Bước 3: xác nhận --- */
.fd-receipt{margin:2px 0 0;border:1px solid var(--fd-line);border-radius:11px;background:#fff;overflow:hidden}
.fd-receipt-rows{display:grid;margin:0;padding:4px 16px}
.fd-receipt-rows>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid #f1f4f8}
.fd-receipt-rows>div:last-child{border-bottom:0}
.fd-receipt-rows dt{color:var(--fd-muted);font-size:12.5px}
.fd-receipt-rows dd{margin:0;color:#243247;font-size:13.5px;font-weight:700;text-align:right}
.fd-receipt-total{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-top:1px solid var(--fd-line);background:var(--fd-soft)}
.fd-receipt-total span{color:#33415a;font-size:13px;font-weight:650}
.fd-receipt-total strong{color:#1765d5;font-size:21px}
.fd-lock{display:flex;align-items:center;gap:8px;margin:14px 0 20px;color:var(--fd-muted);font-size:12px}
.fd-lock i{color:#2457af}

/* --- Hộp thoại phụ (xác nhận / vượt giới hạn) --- */
.fd-ask{width:min(420px,calc(100vw - 28px));padding:0;border:0;border-radius:13px;background:#fff;color:#17243b;box-shadow:0 20px 55px rgba(15,23,42,.22)}
.fd-ask::backdrop{background:rgba(15,23,42,.55)}
.fd-ask-body{display:grid;justify-items:center;padding:24px 22px 20px;text-align:center}
.fd-ask-icon{display:grid;place-items:center;width:44px;height:44px;margin-bottom:12px;border-radius:50%;background:#e8f1fe;color:#1d5fb7;font-size:19px}
.fd-ask-icon.is-danger{background:#fdecea;color:#b42318}
.fd-ask-icon.is-warn{background:#fff5e6;color:#b45309}
.fd-ask-body h2{margin:0 0 7px;color:#111827;font-size:17px;line-height:1.3}
.fd-ask-body p{margin:0 0 18px;color:#64748b;font-size:13px;line-height:1.55}
.fd-ask-alt:empty{display:none}
.fd-ask-alt a{color:#1d4ed8}
.fd-ask-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;width:100%}
:is(.fd-client,.fd-ask) .fd-ask .fd-btn,.fd-ask .fd-btn.fd-btn{min-height:42px}
.fd-ask.is-danger .fd-btn.fd-btn-primary{border-color:#b42318;background:#b42318}
.fd-ask.is-danger .fd-btn.fd-btn-primary:hover{border-color:#94261a;background:#94261a}

/* ===== Tablet / mobile: bỏ cột bước dọc, tóm tắt xuống đáy màn hình ===== */
@media(max-width:860px){
 .fd-select-grid{grid-template-columns:minmax(0,1fr) 250px;gap:14px}
}
@media(max-width:768px){
 #fd-product-dialog{width:100vw;height:100dvh;max-width:none;max-height:none;border-radius:0}
 .fd-topbar{padding:11px 14px}
 .fd-topbar-icon{width:34px;height:34px;font-size:16px}
 .fd-topbar-text h2{font-size:16px}
 .fd-body{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
 /* Cột bước dọc -> thanh tiến trình ngang gọn. */
 .fd-rail{border-right:0;border-bottom:1px solid var(--fd-line);overflow:visible}
 .fd-rail-list{grid-auto-flow:column;grid-auto-columns:1fr;gap:0;padding:9px 10px}
 .fd-rail-step{grid-template-columns:auto auto;justify-content:center;align-items:center;gap:7px;padding:6px 4px;background:transparent!important}
 .fd-rail-mark{width:22px;height:22px;font-size:11px}
 .fd-rail-text small{display:none}
 .fd-rail-text strong{font-size:12px;white-space:nowrap}
 .fd-notice{padding:0 14px}
 .fd-panel-head{padding:14px 14px 12px}
 .fd-panel-scroll{padding:0 14px}
 .fd-panel-foot{padding:12px 14px}
 .fd-panel-foot .fd-btn-lg{flex:1}
 .fd-assure{width:100%}
 .fd-readbar{margin:12px 14px 0}
 #fd-edit-sources{margin-left:auto}
 /* File manager full width; tóm tắt thành thanh dính đáy. */
 .fd-select{grid-template-rows:auto minmax(0,1fr)}
 .fd-select-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:0;padding:12px 14px 0}
 .fd-explorer{border-radius:11px 11px 0 0;border-bottom:0}
 .fd-summary{position:sticky;bottom:0;top:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;margin:0 -14px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));border:0;border-top:1px solid #dde4ee;border-radius:0;background:#fff;box-shadow:0 -6px 16px rgba(15,23,42,.06)}
 .fd-summary h4,.fd-summary-rows dt,.fd-price{display:none}
 /* Dong 1: "N file · dung lượng" ben trái, giá đẩy sang phải. */
 .fd-summary-rows{grid-column:1/-1;display:flex;align-items:baseline;gap:8px}
 .fd-summary-rows>div{display:contents}
 .fd-summary-rows dd{font-size:13px;text-align:left}
 .fd-summary-rows>div+div:not(.fd-summary-total) dd::before{content:"·";margin-right:8px;color:#b6c1d1}
 .fd-summary-total{padding-top:0;border-top:0}
 .fd-summary-total dd{margin-left:auto;font-size:16px}
 .fd-summary-actions{grid-column:1/-1;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px;direction:rtl}
 .fd-summary-actions .fd-btn{direction:ltr}
 .fd-scan-body{max-width:none}
 .fd-receipt-rows{padding:2px 13px}
 .fd-panel-foot .fd-foot-right{flex:1;justify-content:flex-end}
 /* Bước 3 trên mobile: [Hủy][Xác nhận] chia đôi một hàng, [Quay lại] full width bên dưới. */
 #fd-confirmation .fd-panel-foot{display:grid;gap:8px}
 #fd-confirmation .fd-foot-right{display:grid;grid-template-columns:1fr 1fr;gap:8px;order:1}
 #fd-confirmation .fd-foot-right .fd-btn{width:100%}
 #fd-back-selection{order:2;width:100%;justify-content:center}
}
@media(max-width:430px){
 .fd-rail-text strong{font-size:11.5px}
 .fd-src{padding:12px}
 .fd-src-code{flex:1 1 100%}
 .fd-explorer-tools{gap:7px;padding:9px 11px}
 .fd-tool-btns{flex:1 1 100%}
 .fd-tool-btns .fd-btn{flex:1}
 .fd-file-row{gap:8px;padding:6px 11px}
 .fd-children{padding-left:11px}
 .fd-source-tree-group>h4{padding-inline:11px}
 .fd-scan-stats strong{font-size:15px}
 .fd-panel-foot{gap:10px}
 .fd-panel-foot .fd-btn-lg{width:100%}
 .fd-assure{order:2}
}
@media(max-width:370px){
 .fd-rail-text strong{display:none}
 .fd-rail-step{gap:0}
 .fd-topbar-text p{display:none}
 .fd-file-type{width:29px}
}

/* ============================================================================
   TRANG CHI TIẾT ĐƠN HÀNG (systems/file_download/order_view.php)
   Giữ nguyên từ bản trước, không nằm trong phạm vi redesign modal.
   ========================================================================== */
.fd-order-shell{display:grid;gap:14px;margin-bottom:18px}.fd-order-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid #e5e7eb;border-radius:10px;background:#fff}.fd-order-summary h2{font-size:18px;margin:0 0 5px;color:#111827}.fd-order-metrics{font-size:14px;color:#334155;font-weight:700}.fd-order-meta{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;text-align:right;font-size:12.5px;color:#64748b}.fd-provider-pill{display:inline-flex;padding:3px 8px;border-radius:5px;background:#eff6ff;color:#1d4ed8;font-size:11px;font-weight:800;text-transform:uppercase}.fd-order-stepper{display:grid;grid-template-columns:repeat(4,1fr);padding:15px;border:1px solid #e5e7eb;border-radius:10px;background:#fff}.fd-order-step{position:relative;display:grid;justify-items:center;gap:6px;text-align:center;color:#94a3b8;font-size:11.5px}.fd-order-step:not(:last-child)::after{content:"";position:absolute;top:12px;left:calc(50% + 16px);right:calc(-50% + 16px);height:2px;background:#e2e8f0}.fd-order-step i{display:grid;place-items:center;width:25px;height:25px;border:2px solid #cbd5e1;border-radius:50%;background:#fff;z-index:1;font-size:10px}.fd-order-step.is-complete{color:#166534}.fd-order-step.is-complete i{border-color:#22c55e;background:#22c55e;color:#fff}.fd-order-step.is-complete:not(:last-child)::after{background:#86efac}.fd-order-step.is-active{color:#1d4ed8;font-weight:700}.fd-order-step.is-active i{border-color:#2579f2;color:#2579f2}.fd-order-alert{padding:16px;border:1px solid #e5e7eb;border-radius:10px}.fd-order-alert{background:#fff7ed;color:#9a3412}.fd-order-alert.is-refunded{background:#f0fdf4;color:#166534}.fd-order-ready{display:grid;gap:12px;padding:15px 16px;border:1px solid #d9e8df;border-radius:10px;background:#f8fcfa}.fd-ready-head{display:flex;align-items:flex-start;gap:11px}.fd-ready-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#dcfce7;color:#15803d;font-size:13px;flex:none}.fd-order-ready h3{margin:0;color:#166534;font-size:16px;line-height:1.3}.fd-order-ready p{margin:3px 0 0;color:#5f7a6b;font-size:12.5px;line-height:1.45}.fd-copy-btn,.fd-open-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:0 15px;border:1px solid transparent;border-radius:8px;font:inherit;font-size:13px;font-weight:650;text-decoration:none;cursor:pointer;white-space:nowrap}.fd-copy-btn{border-color:#d4ddea;background:#fff;color:#33415a}.fd-copy-btn:hover{border-color:#b4c4da;background:#f6f9fd}.fd-copy-btn.is-copied{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.fd-open-btn{border-color:#2579f2;background:#2579f2;color:#fff}.fd-open-btn:hover{border-color:#1765d5;background:#1765d5}.fd-order-sources{display:grid;gap:6px}.fd-order-source{font-size:12px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-delivery-list{display:grid;gap:8px}.fd-delivery-item{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;padding:10px 12px;border:1px solid #e6ece9;border-radius:9px;background:#fff}.fd-delivery-info{display:grid;gap:1px;flex:1 1 150px;min-width:0}.fd-delivery-label{color:#1f2937;font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-delivery-info small{color:#8b9aa7;font-size:11.5px}.fd-delivery-actions{display:flex;align-items:center;gap:8px;flex:none;margin-left:auto}.fd-order-files-card{border:1px solid #e5e7eb;border-radius:10px;background:#fff;overflow:hidden}.fd-order-files-card>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 16px;list-style:none;cursor:pointer}.fd-order-files-card>summary::-webkit-details-marker{display:none}.fd-order-files-title{display:grid;gap:3px}.fd-order-files-title strong{color:#111827}.fd-order-files-title small{color:#64748b}.fd-order-files-toggle{color:#2457af;font-size:12.5px;font-weight:700}.fd-order-files-card[open] .fd-order-files-toggle i{transform:rotate(180deg)}.fd-order-files-body{padding:0 14px 14px;border-top:1px solid #eef2f6}.fd-order-search{width:100%;height:40px;margin:12px 0 8px;padding:0 12px;border:1px solid #cbd5e1;border-radius:7px}.fd-order-file-list{max-height:420px;overflow:auto;border:1px solid #eef2f6;border-radius:7px}.fd-order-file{display:flex;align-items:center;gap:10px;min-width:0;padding:9px 10px;border-bottom:1px solid #eef2f6}.fd-order-file:last-child{border-bottom:0}.fd-order-pagination{display:flex;align-items:center;gap:12px;margin-top:10px;font-size:12px}.fd-order-pagination a{color:#2457af}.fd-file-source{flex:none;padding:3px 7px;border-radius:12px;background:#eef2ff;color:#4338ca;font-size:11px;font-weight:700}.fd-download-legacy-status{display:none!important}

@media(max-width:768px){.fd-order-summary{display:grid;align-items:flex-start}.fd-order-meta{text-align:left;justify-content:flex-start}.fd-order-stepper{grid-template-columns:1fr;gap:0;padding:12px 15px}.fd-order-step{grid-template-columns:28px 1fr;justify-items:start;align-items:center;text-align:left;min-height:44px}.fd-order-step:not(:last-child)::after{top:29px;bottom:-15px;left:12px;right:auto;width:2px;height:auto}.fd-order-step i{grid-row:1;grid-column:1}.fd-order-step span{grid-row:1;grid-column:2}.fd-order-file-list{max-height:360px}.fd-order-file .fd-size{min-width:62px;text-align:right}}
@media(max-width:430px){.fd-order-files-card>summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;padding:12px}.fd-order-files-title{min-width:0}.fd-order-files-title strong,.fd-order-files-title small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-order-files-toggle span{display:none}.fd-delivery-item{align-items:stretch;flex-direction:column;gap:10px}.fd-delivery-info{flex:0 0 auto}.fd-delivery-actions{display:grid;gap:8px;width:100%;margin-left:0}.fd-open-btn{order:1;width:100%}.fd-copy-btn{order:2;width:100%}.fd-file-source{display:none}}
