.dpcp-app,
.dpcp-app * { box-sizing: border-box; }
.dpcp-app {
    --dpc-green: #174f98;
    --dpc-green-dark: #103f7d;
    --dpc-yellow: #f6d813;
    --dpc-orange: #174f98;
    --dpc-border: #cfdbeb;
    --dpc-soft: #eef5fc;
    --dpc-text: #1b2d43;
    --dpc-muted: #617087;
    max-width: 1100px;
    margin: 24px auto;
    font-family: Arial, Helvetica, sans-serif;
    color: var(--dpc-text);
    font-size: 15px;
    line-height: 1.5;
}
.dpcp-app button,
.dpcp-app input,
.dpcp-app select,
.dpcp-app textarea { font-family: Arial, Helvetica, sans-serif; }
.dpcp-header {
    padding: 26px 24px;
    color: #fff;
    background: #174f98;
    box-shadow: 0 12px 30px rgba(23, 79, 152, .2);
    border-radius: 14px 14px 0 0;
    text-align: center;
}
.dpcp-brand-kicker { font-size: 13px; font-weight: 700; letter-spacing: .08em; color: rgba(255,255,255,.9); }
.dpcp-header :is(h1, h2) { margin: 5px 0 4px; color: #fff; font-size: clamp(22px, 3vw, 31px); line-height: 1.2; }
.dpcp-header p { margin: 0; color: rgba(255,255,255,.92); }
.dpcp-account-status { padding: 13px 18px; display: flex; align-items: center; justify-content: center; gap: 10px; border: 1px solid #cbd9ea; border-top: 0; background: #f5f9ff; color: #34445d; }
.dpcp-account-status > span { width: 28px; height: 28px; flex: 0 0 28px; display: grid; place-items: center; border-radius: 50%; background: #18498f; color: #fff; font-weight: 900; }
.dpcp-account-status p { margin: 0; line-height: 1.55; }
.dpcp-account-status a { color: #135db8; font-weight: 800; text-decoration: underline; text-underline-offset: 2px; }
.dpcp-account-status.is-logged-in { border-color: #bed2ea; background: #eef5fc; }
.dpcp-account-status.is-logged-in > span { background: #174f98; }
@media (max-width: 760px) {
    .dpcp-account-status { padding: 13px 14px; align-items: flex-start; justify-content: flex-start; font-size: 14px; }
}
.dpcp-mode-tabs { display: grid; grid-template-columns: 1fr 1fr; background: #fff; border: 1px solid var(--dpc-border); border-top: 0; }
.dpcp-mode-btn { border: 0; padding: 15px 12px; background: #eaf2fb; color: var(--dpc-green-dark); font-weight: 800; cursor: pointer; transition: background-color .18s ease, color .18s ease, box-shadow .18s ease; }
.dpcp-mode-btn:hover { background: #dceafa; }
.dpcp-mode-btn.is-active { color: #fff; background: #174f98; box-shadow: inset 0 -4px 0 #103f7d; }
.dpcp-panel { border: 1px solid var(--dpc-border); border-top: 0; background: #fff; padding: 20px; }
.dpcp-section { margin: 0 0 18px; padding: 20px; background: #fff; border: 1px solid var(--dpc-border); border-radius: 12px; box-shadow: 0 5px 18px rgba(23,79,152,.07); }
.dpcp-section:last-child { margin-bottom: 0; }
.dpcp-section > h3 { margin: -20px -20px 18px; padding: 12px 18px; border-radius: 11px 11px 0 0; background: var(--dpc-soft); color: var(--dpc-green-dark); font-size: 17px; border-bottom: 1px solid var(--dpc-border); }
.dpcp-grid { display: grid; gap: 15px; }
.dpcp-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dpcp-span-2 { grid-column: 1 / -1; }
.dpcp-field { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.dpcp-field > span { font-weight: 700; color: #243229; }
.dpcp-field small { color: var(--dpc-muted); display: block; }
.dpcp-field input,
.dpcp-field select,
.dpcp-field textarea {
    width: 100%; min-height: 44px; border: 1px solid #bfcbbf; border-radius: 8px; background: #fff; color: #172019;
    padding: 9px 11px; font-size: 15px; outline: none; transition: border-color .2s, box-shadow .2s;
}
.dpcp-field textarea { min-height: 86px; resize: vertical; }
.dpcp-field input:focus,
.dpcp-field select:focus,
.dpcp-field textarea:focus { border-color: var(--dpc-green); box-shadow: 0 0 0 3px rgba(23,79,152,.14); }
.dpcp-field input[readonly] { background: #f2f5f2; color: #59645b; }
.dpcp-formula-note { margin-top: 15px; padding: 10px 12px; background: #fff9d7; border-left: 4px solid var(--dpc-yellow); border-radius: 6px; font-size: 13px; }
.dpcp-steps { display: grid; gap: 14px; }
.dpcp-step-card { display: grid; grid-template-columns: 42px 1fr; gap: 12px; padding: 16px; border: 1px solid #cbd9cc; background: #fbfdfb; border-radius: 10px; }
.dpcp-step-number { width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--dpc-green); color: #fff; font-weight: 800; }
.dpcp-step-content h4 { margin: 4px 0 10px; color: var(--dpc-green-dark); font-size: 16px; }
.dpcp-step-note { margin: -3px 0 12px; color: #6d5420; font-size: 13px; }
.dpcp-fixed-product { padding: 10px 12px; border-radius: 8px; background: #eef5fc; min-height: 69px; }
.dpcp-fixed-product strong, .dpcp-fixed-product small { display: block; }
.dpcp-fixed-product small { margin-top: 3px; color: var(--dpc-muted); }
.dpcp-action-row { display: flex; flex-wrap: wrap; gap: 10px; }
.dpcp-calc-row { justify-content: center; margin-top: 8px; }
.dpcp-btn { border: 0; border-radius: 8px; min-height: 45px; padding: 11px 16px; color: #fff !important; font-weight: 800; text-align: center; text-decoration: none !important; cursor: pointer; transition: transform .15s, filter .15s, box-shadow .15s; display: inline-flex; align-items: center; justify-content: center; line-height: 1.25; }
.dpcp-btn:hover { transform: translateY(-1px); filter: brightness(1.05); box-shadow: 0 5px 12px rgba(0,0,0,.14); }
.dpcp-btn:disabled { opacity: .65; cursor: wait; transform: none; }
.dpcp-btn-primary { background: #174f98; min-width: 230px; box-shadow: 0 6px 15px rgba(23,79,152,.24); }
.dpcp-btn-muted { background: #174f98; }
#dpcp-calculate,
#dpcp-reverse-calculate,
#dpcp-reset,
#dpcp-reverse-reset { min-width: 230px; height: 45px; min-height: 45px; padding: 0 20px; border: 1px solid rgba(255,255,255,.22); border-radius: 8px; font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important; font-size: 16px; font-weight: 750; line-height: 1; letter-spacing: .012em; text-shadow: 0 1px 1px rgba(0,0,0,.18); }
#dpcp-calculate,
#dpcp-reverse-calculate { background: #174f98; box-shadow: 0 6px 15px rgba(23,79,152,.24), inset 0 1px 0 rgba(255,255,255,.18); }
#dpcp-reset,
#dpcp-reverse-reset,
.dpcp-btn-reset-highlight { background-color: #174f98 !important; background-image: none !important; color: #fff !important; border-color: #103f7d !important; box-shadow: 0 7px 17px rgba(23,79,152,.3), inset 0 1px 0 rgba(255,255,255,.24) !important; transform: translateY(-1px); }
#dpcp-reset:hover,
#dpcp-reverse-reset:hover,
.dpcp-btn-reset-highlight:hover { background-color: #103f7d !important; background-image: none !important; filter: none; box-shadow: 0 9px 21px rgba(16,63,125,.32), inset 0 1px 0 rgba(255,255,255,.24) !important; transform: translateY(-2px); }
.dpcp-message { margin: 16px 0; padding: 12px 15px; border-radius: 8px; font-weight: 700; }
.dpcp-message.is-success { color: #0c5820; background: #e7f7ea; border: 1px solid #a9dab2; }
.dpcp-message.is-error { color: #8c1d18; background: #fff0ef; border: 1px solid #edb9b6; }
.dpcp-results { margin-top: 20px; }
.dpcp-summary-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 270px)) !important; grid-auto-rows: 65px !important; justify-content: center; align-items: start; gap: 10px; }
.dpcp-summary-card { box-sizing: border-box !important; display: flex; flex-direction: column; justify-content: center; width: 100% !important; min-width: 0 !important; max-width: 270px !important; height: 65px !important; min-height: 65px !important; max-height: 65px !important; margin: 0 !important; padding: 5px 14px !important; overflow: hidden; border: 1px solid #cbd9ea; border-radius: 10px; background: linear-gradient(180deg, #fff, #f4f8fd); font-family: var(--dpcp-summary-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif) !important; font-size: var(--dpcp-summary-font-size, 15px); }
.dpcp-summary-card * { font-family: inherit !important; }
.dpcp-summary-card span { display: block; color: var(--dpc-muted); font-size: .8em; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dpcp-summary-card strong { display: -webkit-box; margin-top: 2px; overflow: hidden; color: var(--dpc-green-dark); font-size: 1em; line-height: 1.25; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.dpcp-step-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.dpcp-result-step-card { padding: 14px; border: 1px solid var(--dpc-border); border-radius: 9px; background: #f8fbff; }
.dpcp-result-step-head { display: flex; justify-content: space-between; gap: 10px; color: var(--dpc-green-dark); }
.dpcp-result-step-head span { white-space: nowrap; padding: 2px 8px; background: var(--dpc-yellow); color: #241f00; border-radius: 99px; font-size: 12px; font-weight: 800; }
.dpcp-result-step-product { margin-top: 7px; font-weight: 700; }
.dpcp-result-step-area, .dpcp-result-step-parts { margin-top: 5px; font-size: 13px; color: #4b574d; }
.dpcp-table-wrap { width: 100%; }
.dpcp-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.dpcp-table th, .dpcp-table td { padding: 8px 10px; min-height: var(--dpcp-table-row-height, 45px); height: var(--dpcp-table-row-height, 45px); border: 1px solid #ced8cf; text-align: var(--dpcp-table-align, center); vertical-align: middle; word-break: break-word; font-family: var(--dpcp-table-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif) !important; font-size: var(--dpcp-table-font-size, 15px) !important; }
.dpcp-table thead th { background: var(--dpcp-table-header-bg, #174f98); color: var(--dpcp-table-header-color, #fff); font-weight: var(--dpcp-table-header-weight, 700); text-align: center !important; vertical-align: middle !important; text-transform: none !important; letter-spacing: normal !important; line-height: 1.25; white-space: normal; }
.dpcp-table tbody tr:nth-child(even) { background: #f7faf7; }
.dpcp-table td small { display: block; margin-top: 5px; color: #718074; font-size: 11px; }
.dpcp-material-table td:nth-child(3) { color: var(--dpc-green-dark); background: #f2f7fd; }
.dpcp-required-note { color: #8b241d; font-size: 13px; }
.dpcp-action-grid { display: grid; grid-template-columns: repeat(auto-fit, 200px); justify-content: center; gap: 10px; }
.dpcp-action-grid .dpcp-btn { width: 200px; min-width: 200px; height: 45px; min-height: 45px; padding: 0 12px; border-radius: 9px; }
.dpcp-btn-copy,
.dpcp-btn-zalo,
.dpcp-btn-call,
.dpcp-btn-quote,
.dpcp-btn-print,
.dpcp-btn-pdf { background: #174f98; }
.dpcp-disclaimer { margin: 13px 0 0; color: #69736b; font-size: 12px; text-align: center; }
.dpcp-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.is-hidden { display: none !important; }

.dpcp-print-sheet { position: fixed; left: -100000px; top: 0; width: 794px; background: #fff; z-index: -1; }
.dpcp-print-sheet.is-pdf-rendering { position: fixed; left: 0; top: 0; z-index: 999999; opacity: 1; pointer-events: none; }
.dpcp-print-page { width: 794px; min-height: 1123px; padding: 28px 32px; background: #fff; color: #111; font-family: "Times New Roman", Times, serif; font-size: 12px; line-height: 1.32; }
.dpcp-print-header { display: flex; align-items: flex-start; gap: 18px; border-bottom: 2px solid #174f98; padding-bottom: 12px; }
.dpcp-print-logo { max-width: 135px; max-height: 80px; object-fit: contain; }
.dpcp-print-header h1 { margin: 0 0 4px; font-size: 22px; color: #103f7d; }
.dpcp-print-header p { margin: 1px 0; font-size: 11px; }
.dpcp-print-meta { display: flex; justify-content: space-between; gap: 12px; margin: 10px 0; font-size: 11px; }
.dpcp-print-page h3 { margin: 10px 0 5px; padding: 5px 7px; background: #eef5fc; color: #103f7d; font-size: 13px; }
.dpcp-print-page table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 12px; }
.dpcp-print-page th, .dpcp-print-page td { border: 1px solid #929b94; padding: 4px 5px; vertical-align: top; word-break: break-word; }
.dpcp-print-page th { background: #f1f4f1; text-align: left; }
.dpcp-print-note { margin-top: 9px; font-size: 11px; color: #555; text-align: center; }

@media (max-width: 760px) {
    .dpcp-app { margin: 12px 0; font-size: 14px; }
    .dpcp-header { border-radius: 9px 9px 0 0; padding: 21px 14px; }
    .dpcp-mode-tabs { grid-template-columns: 1fr; }
    .dpcp-mode-btn { padding: 12px 8px; }
    .dpcp-panel { padding: 10px; }
    .dpcp-section { padding: 14px; border-radius: 9px; }
    .dpcp-section > h3 { margin: -14px -14px 14px; padding: 11px 12px; font-size: 15px; }
    .dpcp-grid-2, .dpcp-step-results, .dpcp-action-grid { grid-template-columns: 1fr; }
    .dpcp-summary-grid { grid-template-columns: 270px !important; grid-auto-rows: 65px !important; }
    .dpcp-span-2 { grid-column: auto; }
    .dpcp-step-card { grid-template-columns: 32px 1fr; padding: 12px 10px; gap: 8px; }
    .dpcp-step-number { width: 30px; height: 30px; font-size: 13px; }
    .dpcp-step-content h4 { margin-top: 2px; }
    .dpcp-summary-grid { justify-items: center; }
    .dpcp-summary-card { width: 270px !important; min-width: 270px !important; max-width: 270px !important; height: 65px !important; min-height: 65px !important; max-height: 65px !important; }
    .dpcp-btn { width: 100%; }
    .dpcp-table, .dpcp-table tbody, .dpcp-table tr, .dpcp-table td { display: block; width: 100%; }
    .dpcp-table thead { display: none; }
    .dpcp-table tr { margin-bottom: 12px; border: 2px solid #b9cbbb; border-radius: 9px; overflow: hidden; background: #fff !important; }
    .dpcp-table td { display: grid; grid-template-columns: 42% 58%; border: 0; border-bottom: 1px solid #d9e1da; padding: 10px; min-height: 48px; }
    .dpcp-table td:last-child { border-bottom: 0; }
    .dpcp-table td::before { content: attr(data-label); padding-right: 8px; color: #103f7d; font-size: 11px; font-weight: 800; }
    .dpcp-material-table td:nth-child(3) { background: #eef5fc; }
}

/* v2.1 */
.dpcp-ticket-card { border: 2px solid var(--dpc-yellow); background: #fffbe3; }
.dpcp-ticket-card strong { color: #8a4b00; letter-spacing: .02em; }
.dpcp-material-table tfoot th { height: 50px; padding: 8px 10px; border: 1px solid #ced8cf; background: #fff6c7; color: #513800; text-align: center !important; vertical-align: middle !important; font-family: var(--dpcp-table-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif) !important; font-size: 14px !important; font-weight: 700; line-height: 1.35; text-transform: none !important; letter-spacing: normal !important; white-space: normal; }
.dpcp-material-table tfoot th:last-child { text-align: center !important; font-size: 14px !important; }
.dpcp-material-table tfoot .dpcp-no-price { font-family: inherit !important; font-size: inherit !important; line-height: inherit !important; text-transform: none !important; }
.dpcp-material-table tfoot th:last-child,
.dpcp-material-table tfoot th:last-child span { text-align: center !important; vertical-align: middle !important; text-transform: none !important; }
.dpcp-btn-share { background: #174f98; }
.dpcp-consent { display: flex; flex-direction: row; gap: 10px; align-items: flex-start; padding: 12px; border: 1px solid #d8dfd9; border-radius: 8px; background: #f8faf8; font-weight: 600; }
.dpcp-consent input { width: 18px; height: 18px; min-height: 18px; margin-top: 2px; flex: 0 0 auto; }
.dpcp-technical-warning { border-color: #e8c46d; background: #fffdf4; }
.dpcp-technical-warning > h3 { background: #fff3c3; color: #704b00; }
.dpcp-technical-warning #dpcp-warning-text { color: #5f4b1f; }
.dpcp-print-warning { margin: 4px 0; padding: 7px; border: 1px solid #d8bd6a; background: #fff9df; font-size: 10.5px; line-height: 1.25; }
.dpcp-print-page tfoot th { background: #fff4bd; font-weight: 800; }
.dpcp-price-column.is-hidden { display: none !important; }

@media (min-width: 900px) {
    .dpcp-action-grid { grid-template-columns: repeat(4, 200px); }
}

@media (max-width: 760px) {
    .dpcp-action-grid { grid-template-columns: minmax(0, 200px); }
    .dpcp-action-grid .dpcp-btn { width: 200px; min-width: 200px; }
    .dpcp-material-table tfoot { display: block; width: 100%; }
    .dpcp-material-table tfoot tr { display: grid; grid-template-columns: 1fr; border: 2px solid #d9b73f; }
    .dpcp-material-table tfoot th { display: block; width: 100%; text-align: center !important; border: 0; }
    .dpcp-material-table tfoot th[colspan] { display: none; }
    .dpcp-consent { font-size: 13px; }
}

/* v2.2 */
.dpcp-mode-btn { font-family: Arial, Helvetica, sans-serif !important; }
.dpcp-inline-field { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
.dpcp-mini-btn { border: 0; border-radius: 8px; padding: 8px 12px; background: #174f98; color: #fff; font-family: Arial, Helvetica, sans-serif; font-weight: 800; cursor: pointer; white-space: nowrap; }
.dpcp-stock-note { margin: 0 0 14px; color: var(--dpc-muted); }
.dpcp-mixed-use-warning { margin: 12px 0 0; padding: 10px 12px; border: 1px solid #d6a82b; background: #fff6c9; color: #6f4900; border-radius: 7px; }
.dpcp-copyright { margin-top: 16px; padding: 13px; border-top: 1px solid var(--dpc-border); color: #5f695f; background: #fff; text-align: center; font: 12px Arial, Helvetica, sans-serif; }
.dpcp-no-price { font-family: Arial, Helvetica, sans-serif; font-size: 12px !important; font-weight: 800; }
.dpcp-material-table td:nth-child(3) { color: inherit; background: inherit; }
.dpcp-material-table td:nth-child(4), .dpcp-material-table td:nth-child(5) { color: var(--dpc-green-dark); background: #f2f7fd; }

.dpcp-modal { position: fixed; inset: 0; z-index: 999999; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(0,0,0,.55); }
.dpcp-modal-dialog { width: min(960px, 100%); max-height: 90vh; overflow: hidden; border-radius: 12px; background: #fff; box-shadow: 0 18px 60px rgba(0,0,0,.32); }
.dpcp-modal-head { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 14px 18px; background: #174f98; color: #fff; }
.dpcp-modal-head h3 { margin: 0; color: #fff; font-size: 18px; }
.dpcp-modal-head button { width: 36px; height: 36px; border: 0; border-radius: 50%; background: rgba(255,255,255,.2); color: #fff; font-size: 26px; line-height: 1; cursor: pointer; }
.dpcp-modal-body { max-height: calc(90vh - 64px); overflow: auto; padding: 16px; }
.dpcp-ral-search-label { display: block; margin: 0 0 6px; color: #263526; font-size: 14px; font-weight: 700; }
.dpcp-modal-body > input { width: 100%; min-height: 44px; padding: 9px 12px; border: 1px solid #aebbae; border-radius: 8px; font: 15px Arial, Helvetica, sans-serif; }
.dpcp-modal-body > input:disabled { cursor: not-allowed; opacity: .65; }
.dpcp-ral-note { margin: 9px 0 14px; color: #6b5a25; font-size: 13px; }
.dpcp-ral-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 10px; }
.dpcp-ral-grid.is-empty { display: block; }
.dpcp-ral-empty { grid-column: 1 / -1; margin: 0; padding: 18px; border: 1px solid #d6ddd6; border-radius: 8px; background: #f6f8f6; color: #435043; text-align: center; }
.dpcp-ral-empty strong, .dpcp-ral-empty span { display: block; }
.dpcp-ral-empty strong { margin-bottom: 5px; color: #263526; }
.dpcp-ral-card { display: grid; grid-template-columns: 42px 1fr; grid-template-rows: auto auto; column-gap: 9px; min-height: 64px; padding: 8px; border: 1px solid #d2d8d2; border-radius: 8px; background: #fff; color: #222; text-align: left; cursor: pointer; font-family: Arial, Helvetica, sans-serif; }
.dpcp-ral-card:hover { border-color: #174f98; box-shadow: 0 3px 10px rgba(23,79,152,.18); }
.dpcp-ral-card i { grid-row: 1 / 3; width: 42px; height: 46px; border: 1px solid rgba(0,0,0,.18); border-radius: 5px; }
.dpcp-ral-card strong { align-self: end; font-size: 13px; }
.dpcp-ral-card span { align-self: start; font-size: 11px; color: #687268; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Trang in và PDF: A4, nền trắng, Times New Roman 12, không dùng nền màu. */
.dpcp-print-sheet { width: 210mm; background: #fff !important; }
.dpcp-print-page { position: relative; width: 210mm; min-height: 297mm; padding: 9mm 10mm 13mm; box-sizing: border-box; background: #fff !important; color: #111; font-family: "Times New Roman", Times, serif !important; font-size: 12px !important; line-height: 1.35; -webkit-font-smoothing: antialiased; text-rendering: geometricPrecision; }
.dpcp-print-page, .dpcp-print-page p, .dpcp-print-page span, .dpcp-print-page strong, .dpcp-print-page h1, .dpcp-print-page h2, .dpcp-print-page h3, .dpcp-print-page th, .dpcp-print-page td { font-family: "Times New Roman", Times, serif !important; font-size: 12px !important; color: #111 !important; }
.dpcp-print-header { gap: 12px; padding-bottom: 7px; border-bottom: 1.5px solid #111; background: #fff !important; }
.dpcp-print-logo { max-width: 118px; max-height: 68px; }
.dpcp-print-header h1 { margin: 0 0 3px; font-weight: 800; letter-spacing: .02em; }
.dpcp-print-header p { margin: 1px 0; }
.dpcp-print-meta { display: grid; grid-template-columns: 1fr 1fr 1fr; margin: 7px 0; gap: 6px; }
.dpcp-print-page h3 { margin: 8px 0 4px; padding: 4px 0; border-bottom: 1px solid #111; background: #fff !important; font-weight: 800; }
.dpcp-print-page table { table-layout: fixed; font-size: 12px !important; background: #fff !important; }
.dpcp-print-page th, .dpcp-print-page td { padding: 4px 4px; border: 1px solid #555; background: #fff !important; vertical-align: top; overflow-wrap: anywhere; word-break: normal; }
.dpcp-print-page th { font-weight: 800; }
.dpcp-print-material-table th:nth-child(1), .dpcp-print-material-table td:nth-child(1) { width: 15%; }
.dpcp-print-material-table th:nth-child(2), .dpcp-print-material-table td:nth-child(2) { width: 12%; }
.dpcp-print-material-table th:nth-child(3), .dpcp-print-material-table td:nth-child(3) { width: 11%; }
.dpcp-print-material-table th:nth-child(4), .dpcp-print-material-table td:nth-child(4) { width: 13%; }
.dpcp-print-material-table th:nth-child(5), .dpcp-print-material-table td:nth-child(5) { width: 24%; }
.dpcp-print-material-table th:nth-child(6), .dpcp-print-material-table td:nth-child(6) { width: 12%; }
.dpcp-print-warning { margin: 4px 0; padding: 5px 0; border: 0; background: #fff !important; }
.dpcp-print-note { margin: 7px 0 3px; color: #111; text-align: center; }
.dpcp-print-copyright { position: absolute; left: 10mm; right: 10mm; bottom: 6mm; margin: 0; padding-top: 4px; border-top: 1px solid #777; text-align: center; font-weight: 700; }
.dpcp-print-swatch { display: inline-block; width: 18px; height: 18px; margin-right: 6px; border: 1px solid #555; vertical-align: middle; background-color: inherit; }
.dpcp-print-page tfoot th { background: #fff !important; }


@media (max-width: 900px) {
    .dpcp-ral-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 760px) {
    .dpcp-inline-field { grid-template-columns: 1fr; }
    .dpcp-mini-btn { min-height: 42px; }
    .dpcp-ral-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .dpcp-material-table td:nth-child(3), .dpcp-material-table td:nth-child(4), .dpcp-material-table td:nth-child(5) { background: #eef5fc; }
}

/* v2.2.3: dòng hướng dẫn diện tích tĩnh, màu xanh, không hiệu ứng chuyển động. */
#dpcp-area::placeholder {
    color: #174f98;
    opacity: 1;
    font-weight: 700;
}

/* Nội dung in/PDF sử dụng Times New Roman cỡ 12 và luôn nằm trong một trang A4. */
.dpcp-print-sheet {
    width: 210mm !important;
    height: 297mm !important;
    overflow: hidden !important;
    background: #fff !important;
}
.dpcp-print-page {
    position: relative;
    width: 210mm !important;
    height: 297mm !important;
    min-height: 297mm !important;
    max-height: 297mm !important;
    padding: 7mm 9mm 12mm !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    background: #fff !important;
    color: #000 !important;
    font-family: "Times New Roman", Times, serif !important;
    font-size: 12px !important;
    line-height: 1.22 !important;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
.dpcp-print-content {
    width: 100%;
    transform-origin: top left;
    background: #fff !important;
}
.dpcp-print-page,
.dpcp-print-page p,
.dpcp-print-page span,
.dpcp-print-page strong,
.dpcp-print-page h1,
.dpcp-print-page h2,
.dpcp-print-page h3,
.dpcp-print-page th,
.dpcp-print-page td,
.dpcp-print-page div {
    font-family: "Times New Roman", Times, serif !important;
    font-size: 12px !important;
    color: #000 !important;
}
.dpcp-print-header {
    gap: 10px !important;
    padding-bottom: 5px !important;
    border-bottom: 1px solid #000 !important;
}
.dpcp-print-logo {
    max-width: 105px !important;
    max-height: 58px !important;
}
.dpcp-print-header h1 {
    margin: 0 0 2px !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
}
.dpcp-print-header p {
    margin: 0 !important;
    line-height: 1.15 !important;
}
.dpcp-print-meta {
    margin: 5px 0 !important;
    gap: 5px !important;
    line-height: 1.15 !important;
}
.dpcp-print-page h3 {
    margin: 5px 0 3px !important;
    padding: 2px 0 !important;
    border-bottom: 1px solid #000 !important;
    line-height: 1.15 !important;
}
.dpcp-print-page table {
    width: 100% !important;
    border-collapse: collapse !important;
    table-layout: fixed !important;
    background: #fff !important;
    font-size: 12px !important;
    line-height: 1.15 !important;
    page-break-inside: avoid !important;
}
.dpcp-print-page th,
.dpcp-print-page td {
    padding: 2px 3px !important;
    border: 1px solid #333 !important;
    background: #fff !important;
    vertical-align: top !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
}
.dpcp-print-warning {
    margin: 2px 0 !important;
    padding: 1px 0 !important;
    border: 0 !important;
    background: #fff !important;
    line-height: 1.15 !important;
}
.dpcp-print-note {
    margin: 4px 0 2px !important;
    line-height: 1.15 !important;
}
.dpcp-print-copyright {
    position: absolute !important;
    left: 9mm !important;
    right: 9mm !important;
    bottom: 4mm !important;
    margin: 0 !important;
    padding-top: 3px !important;
    border-top: 1px solid #555 !important;
    line-height: 1.1 !important;
    background: #fff !important;
}
.dpcp-print-swatch {
    width: 15px !important;
    height: 15px !important;
    margin-right: 4px !important;
}

/* v2.2.2: nút gửi thông tin và in/PDF dạng văn bản sắc nét */
.dpcp-btn-send-info {
    width: 100%;
    margin-top: 2px;
    background: #174f98;
    color: #fff;
    border: 2px solid #103f7d;
    box-shadow: 0 3px 8px rgba(23, 79, 152, .2);
}
.dpcp-btn-send-info:hover,
.dpcp-btn-send-info:focus {
    background: #103f7d;
    color: #fff;
}
.dpcp-btn-send-info:disabled {
    opacity: .68;
    cursor: wait;
}

/* Không thu nhỏ phiếu bằng transform vì transform làm chữ mờ khi in. */
.dpcp-print-content {
    width: 100% !important;
    transform: none !important;
    transform-origin: initial !important;
}
.dpcp-print-page {
    -webkit-font-smoothing: auto !important;
    text-rendering: auto !important;
    print-color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
    box-shadow: none !important;
}

/* Hai mức bố cục gọn, vẫn giữ Times New Roman cỡ 12 và chữ dạng vector. */
.dpcp-print-page.dpcp-print-compact {
    padding: 5.5mm 8mm 10mm !important;
    line-height: 1.08 !important;
}
.dpcp-print-page.dpcp-print-compact .dpcp-print-logo {
    max-width: 88px !important;
    max-height: 48px !important;
}
.dpcp-print-page.dpcp-print-compact .dpcp-print-header {
    gap: 7px !important;
    padding-bottom: 3px !important;
}
.dpcp-print-page.dpcp-print-compact .dpcp-print-meta {
    margin: 3px 0 !important;
    gap: 3px !important;
}
.dpcp-print-page.dpcp-print-compact h3 {
    margin: 3px 0 2px !important;
    padding: 1px 0 !important;
}
.dpcp-print-page.dpcp-print-compact th,
.dpcp-print-page.dpcp-print-compact td {
    padding: 1.5px 2px !important;
    line-height: 1.04 !important;
}
.dpcp-print-page.dpcp-print-compact .dpcp-print-warning,
.dpcp-print-page.dpcp-print-compact .dpcp-print-note {
    margin: 2px 0 !important;
    padding: 0 !important;
}

.dpcp-print-page.dpcp-print-tight {
    padding: 4mm 7mm 9mm !important;
    line-height: 1 !important;
}
.dpcp-print-page.dpcp-print-tight .dpcp-print-header {
    gap: 6px !important;
    padding-bottom: 2px !important;
}
.dpcp-print-page.dpcp-print-tight .dpcp-print-logo {
    max-width: 72px !important;
    max-height: 40px !important;
}
.dpcp-print-page.dpcp-print-tight .dpcp-print-header p,
.dpcp-print-page.dpcp-print-tight .dpcp-print-meta {
    line-height: 1 !important;
}
.dpcp-print-page.dpcp-print-tight .dpcp-print-meta {
    margin: 2px 0 !important;
    gap: 2px !important;
}
.dpcp-print-page.dpcp-print-tight h3 {
    margin: 2px 0 1px !important;
    padding: 0 !important;
}
.dpcp-print-page.dpcp-print-tight th,
.dpcp-print-page.dpcp-print-tight td {
    padding: 1px 2px !important;
    line-height: 1 !important;
}
.dpcp-print-page.dpcp-print-tight .dpcp-print-warning,
.dpcp-print-page.dpcp-print-tight .dpcp-print-note {
    margin: 1px 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
}

/* v2.2.5: font và cỡ chữ trang in/PDF được cấu hình trong quản trị. */
.dpcp-print-page,
.dpcp-print-page p,
.dpcp-print-page span,
.dpcp-print-page strong,
.dpcp-print-page h1,
.dpcp-print-page h2,
.dpcp-print-page h3,
.dpcp-print-page th,
.dpcp-print-page td,
.dpcp-print-page div {
    font-family: var(--dpcp-print-font, "Times New Roman", Times, serif) !important;
    font-size: var(--dpcp-print-size, 12px) !important;
}


/* v2.2.7: canh trái thông tin khách hàng và hỗ trợ A4 ngang/dọc theo cấu hình. */
.dpcp-forward-result-only .dpcp-field,
.dpcp-forward-result-only .dpcp-field > span,
.dpcp-forward-result-only .dpcp-consent {
    text-align: left !important;
}
.dpcp-print-customer-table th,
.dpcp-print-customer-table td {
    text-align: left !important;
}
.dpcp-print-customer-table th:nth-child(1),
.dpcp-print-customer-table th:nth-child(3) {
    width: 16% !important;
}
.dpcp-print-sheet.dpcp-print-landscape,
.dpcp-print-page.dpcp-print-landscape {
    width: 297mm !important;
}
.dpcp-print-sheet.dpcp-print-landscape,
.dpcp-print-page.dpcp-print-landscape {
    height: 210mm !important;
    min-height: 210mm !important;
    max-height: 210mm !important;
}
.dpcp-print-sheet.dpcp-print-portrait,
.dpcp-print-page.dpcp-print-portrait {
    width: 210mm !important;
}
.dpcp-print-sheet.dpcp-print-portrait,
.dpcp-print-page.dpcp-print-portrait {
    height: 297mm !important;
    min-height: 297mm !important;
    max-height: 297mm !important;
}


/* v2.2.8: xem trước phiếu, lề và độ rộng cột tùy chỉnh. */
.dpcp-btn-preview { background: #174f98; }
html.dpcp-preview-open { overflow: hidden !important; }
.dpcp-preview-dialog { width: min(1240px, 98vw); height: min(96vh, 920px); display: flex; flex-direction: column; }
.dpcp-preview-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; border-bottom: 1px solid #d9e3da; background: #f7faf7; font: 13px Arial, Helvetica, sans-serif; }
.dpcp-preview-toolbar > div { display: flex; gap: 8px; }
.dpcp-preview-toolbar .dpcp-btn { min-height: 38px; padding: 8px 12px; font-size: 12px; }
.dpcp-preview-stage { flex: 1 1 auto; min-height: 0; overflow: auto; display: flex; align-items: flex-start; justify-content: center; padding: 14px; background: #60666b; }
.dpcp-preview-page-wrap { position: relative; flex: 0 0 auto; }
.dpcp-preview-page-wrap .dpcp-print-page { margin: 0 !important; box-shadow: 0 8px 30px rgba(0,0,0,.35) !important; transform-origin: top left !important; }
.dpcp-preview-page-wrap .dpcp-print-content { transform: none !important; }

.dpcp-print-page {
    padding: var(--dpcp-print-margin-top, 7mm) var(--dpcp-print-margin-right, 9mm) var(--dpcp-print-margin-bottom, 12mm) var(--dpcp-print-margin-left, 9mm) !important;
}
.dpcp-print-copyright {
    left: var(--dpcp-print-margin-left, 9mm) !important;
    right: var(--dpcp-print-margin-right, 9mm) !important;
    bottom: var(--dpcp-print-footer-bottom, 4mm) !important;
}
.dpcp-print-material-table th:nth-child(1), .dpcp-print-material-table td:nth-child(1) { width: var(--dpcp-print-col-1, 15%) !important; }
.dpcp-print-material-table th:nth-child(2), .dpcp-print-material-table td:nth-child(2) { width: var(--dpcp-print-col-2, 12%) !important; }
.dpcp-print-material-table th:nth-child(3), .dpcp-print-material-table td:nth-child(3) { width: var(--dpcp-print-col-3, 11%) !important; }
.dpcp-print-material-table th:nth-child(4), .dpcp-print-material-table td:nth-child(4) { width: var(--dpcp-print-col-4, 13%) !important; }
.dpcp-print-material-table th:nth-child(5), .dpcp-print-material-table td:nth-child(5) { width: var(--dpcp-print-col-5, 24%) !important; }
.dpcp-print-material-table th:nth-child(6), .dpcp-print-material-table td:nth-child(6) { width: var(--dpcp-print-col-6, 12%) !important; }
.dpcp-print-material-table th:nth-child(7), .dpcp-print-material-table td:nth-child(7) { width: var(--dpcp-print-col-7, 13%) !important; }
.dpcp-print-page.dpcp-print-compact {
    padding: var(--dpcp-print-margin-top-compact, 5.5mm) var(--dpcp-print-margin-right-compact, 8mm) var(--dpcp-print-margin-bottom-compact, 10mm) var(--dpcp-print-margin-left-compact, 8mm) !important;
}
.dpcp-print-page.dpcp-print-tight {
    padding: var(--dpcp-print-margin-top-tight, 4mm) var(--dpcp-print-margin-right-tight, 7mm) var(--dpcp-print-margin-bottom-tight, 9mm) var(--dpcp-print-margin-left-tight, 7mm) !important;
}

/* v2.6.3: phiếu in/PDF dùng line-box an toàn cho tiếng Việt và không phát tán @page ra website. */
.dpcp-print-page {
    line-height: 1.3 !important;
}
.dpcp-print-header h1 {
    line-height: 1.16 !important;
}
.dpcp-print-header p,
.dpcp-print-meta {
    line-height: 1.24 !important;
}
.dpcp-print-page h3 {
    margin: 6px 0 4px !important;
    padding: 2px 0 3px !important;
    line-height: 1.24 !important;
}
.dpcp-print-page table {
    line-height: 1.28 !important;
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
}
.dpcp-print-page th,
.dpcp-print-page td {
    padding: 3px 4px !important;
    line-height: 1.28 !important;
}
.dpcp-print-warning {
    margin: 3px 0 !important;
    padding: 1px 0 !important;
    line-height: 1.25 !important;
}
.dpcp-print-note {
    margin: 5px 0 2px !important;
    line-height: 1.22 !important;
}
.dpcp-print-page.dpcp-print-compact {
    line-height: 1.22 !important;
}
.dpcp-print-page.dpcp-print-compact h3 {
    margin: 4px 0 3px !important;
    padding: 1px 0 2px !important;
    line-height: 1.18 !important;
}
.dpcp-print-page.dpcp-print-compact th,
.dpcp-print-page.dpcp-print-compact td {
    padding: 2.5px 3px !important;
    line-height: 1.2 !important;
}
.dpcp-print-page.dpcp-print-tight,
.dpcp-print-page.dpcp-print-tight .dpcp-print-header p,
.dpcp-print-page.dpcp-print-tight .dpcp-print-meta {
    line-height: 1.16 !important;
}
.dpcp-print-page.dpcp-print-tight h3 {
    margin: 3px 0 2px !important;
    padding: 1px 0 2px !important;
    line-height: 1.14 !important;
}
.dpcp-print-page.dpcp-print-tight th,
.dpcp-print-page.dpcp-print-tight td {
    padding: 2px !important;
    line-height: 1.16 !important;
}
.dpcp-print-page.dpcp-print-tight .dpcp-print-warning,
.dpcp-print-page.dpcp-print-tight .dpcp-print-note {
    margin: 2px 0 !important;
    line-height: 1.14 !important;
}
@media (max-width: 760px) {
    .dpcp-preview-modal { padding: 5px; }
    .dpcp-preview-dialog { width: 100%; height: 98vh; border-radius: 8px; }
    .dpcp-preview-toolbar { align-items: stretch; flex-direction: column; }
    .dpcp-preview-toolbar > div { display: grid; grid-template-columns: 1fr 1fr; }
    .dpcp-preview-toolbar .dpcp-btn { width: 100%; }
    .dpcp-preview-stage { padding: 8px; }
}

/* v2.6.2: giao diện rộng, gọn và đồng nhất nhận diện DECOR PAINT. */
html body.dpcp-ui-page .dpcp-page-main {
    padding-top: 14px;
    padding-bottom: 34px;
}
html body.dpcp-ui-page .sdd-shell.sdd-narrow-shell {
    width: min(calc(100% - 32px), 1200px);
    max-width: 1200px;
}
html body.dpcp-ui-page .sdd-page-article,
html body.dpcp-ui-page .sdd-page-content {
    width: 100%;
    max-width: none;
}
.dpcp-app {
    --dpc-green: #174f98;
    --dpc-green-dark: #103f7d;
    --dpc-yellow: #FFC501;
    --dpc-yellow-hover: #E5B200;
    --dpc-on-yellow: #0B2C52;
    --dpc-orange: var(--dpc-yellow);
    --dpc-orange-dark: var(--dpc-yellow-hover);
    --dpc-border: #cbd9ea;
    --dpc-soft: #eef5fc;
    --dpc-text: #172a43;
    --dpc-muted: #5d6f86;
    width: 100%;
    max-width: 1200px;
    margin: 16px auto 12px;
    color: var(--dpc-text);
    font-family: "Be Vietnam Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    font-size: 14px;
    line-height: 1.45;
    text-rendering: optimizeLegibility;
}
.dpcp-app button,
.dpcp-app input,
.dpcp-app select,
.dpcp-app textarea,
.dpcp-app .dpcp-mode-btn,
.dpcp-app .dpcp-mini-btn,
.dpcp-app .dpcp-ral-card,
.dpcp-app .dpcp-preview-toolbar,
.dpcp-app .dpcp-copyright,
.dpcp-app .dpcp-no-price {
    font-family: inherit !important;
}
.dpcp-header {
    position: relative;
    overflow: hidden;
    padding: 14px 22px 15px;
    border-radius: 13px 13px 0 0;
    background:
        radial-gradient(circle at 92% 12%, rgba(255, 211, 78, .2) 0 40px, transparent 41px),
        linear-gradient(118deg, #103f7d 0%, #174f98 60%, #2468ba 100%);
    box-shadow: 0 10px 26px rgba(23, 79, 152, .18);
}
.dpcp-header::after {
    content: "";
    position: absolute;
    right: 22px;
    bottom: 0;
    width: 94px;
    height: 4px;
    border-radius: 99px 99px 0 0;
    background: linear-gradient(90deg, var(--dpc-yellow), var(--dpc-orange));
}
.dpcp-brand-kicker { font-size: 11px; letter-spacing: .11em; color: #ffe8a1; }
.dpcp-header :is(h1, h2) { margin: 2px 0; font-size: clamp(21px, 2.2vw, 25px); line-height: 1.16; }
.dpcp-header p { font-size: 13px; line-height: 1.4; }
.dpcp-account-status { padding: 9px 14px; gap: 8px; font-size: 13px; }
.dpcp-account-status > span { width: 26px; height: 26px; flex-basis: 26px; }
.dpcp-account-status p { line-height: 1.4; }
.dpcp-mode-btn { padding: 11px 10px; font-size: 13px; letter-spacing: .01em; }
.dpcp-mode-btn:hover { color: var(--dpc-green-dark); background: #fff6d7; }
.dpcp-mode-btn.is-active {
    color: #fff;
    background: linear-gradient(110deg, #103f7d, #174f98);
    box-shadow: inset 0 -4px 0 var(--dpc-orange);
}
.dpcp-panel { padding: 14px; }
.dpcp-section {
    margin-bottom: 12px;
    padding: 14px;
    border-radius: 10px;
    box-shadow: 0 4px 14px rgba(23, 79, 152, .055);
}
.dpcp-section > h3 {
    position: relative;
    margin: -14px -14px 12px;
    padding: 9px 12px 9px 16px;
    border-radius: 9px 9px 0 0;
    font-size: 15px;
    line-height: 1.35;
}
.dpcp-section > h3::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: linear-gradient(180deg, var(--dpc-yellow), var(--dpc-orange));
}
.dpcp-grid { gap: 10px; }
.dpcp-field { gap: 4px; }
.dpcp-field > span { color: #233650; font-size: 13px; }
.dpcp-field small { font-size: 11px; line-height: 1.35; }
.dpcp-field input,
.dpcp-field select,
.dpcp-field textarea {
    min-height: 40px;
    padding: 7px 10px;
    border-color: #b9c9dc;
    border-radius: 7px;
    color: #172a43;
    font-size: 14px;
}
.dpcp-field textarea { min-height: 78px; }
.dpcp-field input:focus,
.dpcp-field select:focus,
.dpcp-field textarea:focus { border-color: var(--dpc-green); box-shadow: 0 0 0 3px rgba(255, 211, 78, .42); }
.dpcp-formula-note { margin-top: 10px; padding: 8px 10px; font-size: 12px; }
.dpcp-steps { gap: 10px; }
.dpcp-step-card { grid-template-columns: 36px 1fr; gap: 10px; padding: 12px; border-color: #c7d6e8; }
.dpcp-step-number { width: 32px; height: 32px; font-size: 13px; box-shadow: 0 3px 9px rgba(23, 79, 152, .18); }
.dpcp-step-content h4 { margin: 2px 0 7px; font-size: 15px; }
.dpcp-step-note { margin: -1px 0 8px; font-size: 12px; }
.dpcp-fixed-product { min-height: 56px; padding: 8px 10px; }
.dpcp-stock-note { margin-bottom: 9px; }
.dpcp-mixed-use-warning { margin-top: 9px; padding: 8px 10px; }
.dpcp-calc-row { margin-top: 5px; }
.dpcp-btn {
    min-height: 42px;
    padding: 9px 15px;
    border-radius: 8px;
    font-size: 13px;
    letter-spacing: .012em;
}
.dpcp-btn:hover { transform: translateY(-2px); box-shadow: 0 7px 18px rgba(16, 63, 125, .22); }
.dpcp-btn:focus-visible,
.dpcp-mode-btn:focus-visible,
.dpcp-mini-btn:focus-visible,
.dpcp-ral-card:focus-visible {
    outline: 3px solid var(--dpc-yellow);
    outline-offset: 2px;
}
.dpcp-btn-primary,
#dpcp-calculate,
#dpcp-reverse-calculate,
.dpcp-btn-quote,
.dpcp-btn-send-info {
    background: linear-gradient(135deg, #FFD52A, var(--dpc-yellow));
    border-color: #D3A800 !important;
    color: var(--dpc-on-yellow) !important;
    text-shadow: none;
    box-shadow: 0 6px 16px rgba(255, 197, 1, .28);
}
.dpcp-btn-primary:hover,
#dpcp-calculate:hover,
#dpcp-reverse-calculate:hover,
.dpcp-btn-quote:hover,
.dpcp-btn-send-info:hover {
    background: linear-gradient(135deg, var(--dpc-yellow), var(--dpc-yellow-hover));
    color: var(--dpc-on-yellow) !important;
}
#dpcp-calculate,
#dpcp-reverse-calculate,
#dpcp-reset,
#dpcp-reverse-reset {
    min-width: 210px;
    height: 42px;
    min-height: 42px;
    padding: 0 18px;
    font-family: inherit !important;
    font-size: 14px;
    font-weight: 800;
}
#dpcp-reset,
#dpcp-reverse-reset,
.dpcp-btn-reset-highlight {
    background: linear-gradient(135deg, #103f7d, #174f98) !important;
    border-color: #0b346b !important;
    box-shadow: 0 6px 16px rgba(23, 79, 152, .24) !important;
    transform: none;
}
.dpcp-mini-btn {
    min-height: 40px;
    padding: 7px 12px;
    border: 1px solid #e2ad15;
    background: linear-gradient(135deg, #ffe27a, var(--dpc-yellow));
    color: #17345b;
    box-shadow: 0 3px 10px rgba(226, 173, 21, .18);
}
.dpcp-mini-btn:hover { background: #ffca28; }
.dpcp-message { margin: 12px 0; padding: 10px 12px; }
.dpcp-results { margin-top: 14px; }
.dpcp-result-step-card { padding: 11px; }
.dpcp-disclaimer { margin-top: 9px; }
.dpcp-copyright { margin-top: 10px; padding: 9px; }
.dpcp-modal-body > input { min-height: 40px; font-size: 14px; }
.dpcp-preview-toolbar { font-size: 12px; }

@media (max-width: 760px) {
    html body.dpcp-ui-page .dpcp-page-main { padding-top: 8px; padding-bottom: 24px; }
    html body.dpcp-ui-page .sdd-shell.sdd-narrow-shell { width: calc(100% - 20px); }
    .dpcp-app { margin: 10px auto; font-size: 14px; }
    .dpcp-header { padding: 14px 13px 15px; }
    .dpcp-header :is(h1, h2) { font-size: 20px; }
    .dpcp-account-status { padding: 9px 11px; font-size: 13px; }
    .dpcp-mode-tabs { grid-template-columns: 1fr 1fr; }
    .dpcp-mode-btn { padding: 10px 6px; font-size: 12px; }
    .dpcp-panel { padding: 9px; }
    .dpcp-section { padding: 11px; margin-bottom: 9px; }
    .dpcp-section > h3 { margin: -11px -11px 10px; padding: 8px 10px 8px 14px; }
    .dpcp-grid { gap: 9px; }
    .dpcp-field input,
    .dpcp-field select,
    .dpcp-field textarea { min-height: 44px; font-size: 16px; }
    .dpcp-field textarea { min-height: 76px; }
    .dpcp-step-card { padding: 10px 9px; }
    .dpcp-btn,
    #dpcp-calculate,
    #dpcp-reverse-calculate,
    #dpcp-reset,
    #dpcp-reverse-reset { width: 100%; min-width: 0; min-height: 44px; height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .dpcp-app *,
    .dpcp-app *::before,
    .dpcp-app *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* v2.6.4: phiếu A4 có nhận diện DECOR PAINT và lưới 2px không mất nét khi in. */
.dpcp-print-page {
    --dpcp-print-blue: #174f98;
    --dpcp-print-blue-dark: #103f7d;
    --dpcp-print-blue-soft: #eaf3fc;
    --dpcp-print-gold: #f2b705;
    --dpcp-print-orange: #c65300;
    --dpcp-print-ink: #172a43;
    --dpcp-print-grid: #61758b;
    border-top: 4px solid var(--dpcp-print-blue) !important;
    color: var(--dpcp-print-ink) !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    text-rendering: optimizeLegibility !important;
    -webkit-font-smoothing: antialiased !important;
}
.dpcp-print-page,
.dpcp-print-page * {
    box-sizing: border-box !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
}
.dpcp-print-header {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 5px 7px 7px !important;
    border: 1.5px solid var(--dpcp-print-blue) !important;
    border-bottom: 3px solid var(--dpcp-print-gold) !important;
    background: #f4f8fd !important;
}
.dpcp-print-logo {
    flex: 0 0 auto !important;
    max-width: 112px !important;
    max-height: 64px !important;
    object-fit: contain !important;
}
.dpcp-print-brand { flex: 1 1 auto !important; min-width: 0 !important; }
.dpcp-print-title-row {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 10px !important;
}
.dpcp-print-page .dpcp-print-kicker {
    display: block !important;
    margin: 0 0 1px !important;
    color: var(--dpcp-print-orange) !important;
    font-size: .76em !important;
    font-weight: 700 !important;
    letter-spacing: .09em !important;
    line-height: 1.15 !important;
}
.dpcp-print-header h1 {
    margin: 0 0 2px !important;
    color: var(--dpcp-print-blue-dark) !important;
    font-size: 1.7em !important;
    font-weight: 800 !important;
    letter-spacing: .012em !important;
    line-height: 1.05 !important;
}
.dpcp-print-page .dpcp-print-document-badge {
    display: inline-block !important;
    flex: 0 0 auto !important;
    margin-top: 1px !important;
    padding: 3px 6px !important;
    border: 1.2px solid var(--dpcp-print-orange) !important;
    background: #fff4df !important;
    color: #9e4100 !important;
    font-size: .72em !important;
    font-weight: 800 !important;
    letter-spacing: .045em !important;
    line-height: 1.15 !important;
}
.dpcp-print-page .dpcp-print-company-name {
    display: block !important;
    margin: 1px 0 !important;
    color: var(--dpcp-print-ink) !important;
    font-size: 1.06em !important;
    line-height: 1.16 !important;
}
.dpcp-print-company-details {
    display: grid !important;
    grid-template-columns: max-content 1fr !important;
    column-gap: 12px !important;
    row-gap: 0 !important;
}
.dpcp-print-header p {
    margin: 0 !important;
    color: #31465d !important;
    font-size: .88em !important;
    line-height: 1.18 !important;
}
.dpcp-print-header p:nth-child(3),
.dpcp-print-header p:nth-child(4) { grid-column: 1 / -1 !important; }
.dpcp-print-header p strong { color: var(--dpcp-print-blue-dark) !important; font-size: 1em !important; }
.dpcp-print-meta {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 5px !important;
    margin: 6px 0 !important;
    line-height: 1.18 !important;
}
.dpcp-print-meta-card {
    display: block !important;
    min-width: 0 !important;
    padding: 4px 6px !important;
    border: 1.2px solid #7897b5 !important;
    border-top: 2.5px solid var(--dpcp-print-blue) !important;
    background: #f8fbff !important;
}
.dpcp-print-meta-card:first-child { border-top-color: var(--dpcp-print-orange) !important; }
.dpcp-print-meta-card:last-child { border-top-color: var(--dpcp-print-gold) !important; }
.dpcp-print-meta-card small {
    display: block !important;
    margin-bottom: 1px !important;
    color: #5a6f85 !important;
    font-size: .72em !important;
    font-weight: 700 !important;
    letter-spacing: .06em !important;
    line-height: 1.1 !important;
}
.dpcp-print-meta-card strong {
    display: block !important;
    color: var(--dpcp-print-blue-dark) !important;
    font-size: .98em !important;
    font-weight: 800 !important;
    line-height: 1.17 !important;
    overflow-wrap: anywhere !important;
}
.dpcp-print-page h3.dpcp-print-section-title {
    margin: 6px 0 3px !important;
    padding: 3px 7px 4px !important;
    border: 1.25px solid #8aa8c6 !important;
    border-left: 4px solid var(--dpcp-print-gold) !important;
    border-bottom: 2px solid var(--dpcp-print-blue) !important;
    background: var(--dpcp-print-blue-soft) !important;
    color: var(--dpcp-print-blue-dark) !important;
    font-size: 1.02em !important;
    font-weight: 800 !important;
    letter-spacing: .025em !important;
    line-height: 1.17 !important;
}
.dpcp-print-page table {
    width: 100% !important;
    table-layout: fixed !important;
    border: 2px solid #294967 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    background: #fff !important;
    color: var(--dpcp-print-ink) !important;
    font-size: var(--dpcp-print-size, 12px) !important;
    line-height: 1.27 !important;
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
}
.dpcp-print-page th,
.dpcp-print-page td {
    padding: 3.5px 4.5px !important;
    border: 0 !important;
    border-right: 2px solid var(--dpcp-print-grid) !important;
    border-bottom: 2px solid var(--dpcp-print-grid) !important;
    background: #fff !important;
    color: var(--dpcp-print-ink) !important;
    font-size: .94em !important;
    line-height: 1.27 !important;
    vertical-align: top !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
}
.dpcp-print-page tr > *:last-child { border-right: 0 !important; }
.dpcp-print-page table > tbody:last-child > tr:last-child > *,
.dpcp-print-page table > tfoot:last-child > tr:last-child > * { border-bottom: 0 !important; }
.dpcp-print-page th {
    background: #e8f1fa !important;
    color: var(--dpcp-print-blue-dark) !important;
    font-weight: 800 !important;
    text-align: left !important;
}
.dpcp-print-page thead th { background: #dceafa !important; text-align: center !important; }
.dpcp-print-page thead th:first-child { text-align: left !important; }
.dpcp-print-page tbody tr:nth-child(even) td { background: #fbfdff !important; }
.dpcp-print-summary-table th { width: 16% !important; }
.dpcp-print-page .dpcp-print-emphasis { background: #fff9e8 !important; color: #9e4100 !important; }
.dpcp-print-page .dpcp-print-emphasis strong { color: #9e4100 !important; }
.dpcp-print-purchase strong { color: var(--dpcp-print-blue-dark) !important; }
.dpcp-print-page .dpcp-no-price { color: #9e4100 !important; font-weight: 800 !important; }
.dpcp-print-material-table tfoot th {
    background: #fff2c7 !important;
    color: #7d3600 !important;
    font-weight: 800 !important;
    text-align: center !important;
}
.dpcp-print-customer-table th,
.dpcp-print-customer-table td { text-align: left !important; }
.dpcp-print-warning-panel {
    margin: 0 !important;
    padding: 4px 7px !important;
    border: 1.25px solid #d5a51b !important;
    border-left: 4px solid var(--dpcp-print-orange) !important;
    background: #fff9e8 !important;
}
.dpcp-print-page .dpcp-print-warning {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #493711 !important;
    font-size: .89em !important;
    line-height: 1.23 !important;
}
.dpcp-print-page .dpcp-print-warning strong { color: #8a3500 !important; font-size: 1em !important; }
.dpcp-print-page .dpcp-print-warning-strong {
    margin-top: 3px !important;
    padding-top: 3px !important;
    border-top: 1px solid #d5a51b !important;
}
.dpcp-print-page .dpcp-print-note {
    margin: 5px 0 2px !important;
    padding: 3px 6px !important;
    border-top: 1.2px solid var(--dpcp-print-blue) !important;
    background: #eef5fc !important;
    color: #31465d !important;
    font-size: .86em !important;
    line-height: 1.2 !important;
    text-align: center !important;
}
.dpcp-print-page .dpcp-print-note strong { color: var(--dpcp-print-blue-dark) !important; font-size: 1em !important; }
.dpcp-print-page .dpcp-print-copyright {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
    padding-top: 3px !important;
    border-top: 2px solid var(--dpcp-print-blue) !important;
    background: #fff !important;
    color: #38526d !important;
    font-size: .74em !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    text-align: left !important;
}
.dpcp-print-page .dpcp-print-copyright span { color: #38526d !important; font-size: 1em !important; }
.dpcp-print-page .dpcp-print-copyright span:last-child { color: var(--dpcp-print-orange) !important; letter-spacing: .025em !important; }
.dpcp-print-swatch { border: 1.3px solid #294967 !important; }

.dpcp-print-page.dpcp-print-compact .dpcp-print-header { gap: 8px !important; padding: 3px 5px 5px !important; }
.dpcp-print-page.dpcp-print-compact .dpcp-print-header h1 { font-size: 1.5em !important; }
.dpcp-print-page.dpcp-print-compact .dpcp-print-header p { line-height: 1.12 !important; }
.dpcp-print-page.dpcp-print-compact .dpcp-print-meta-card { padding: 3px 4px !important; }
.dpcp-print-page.dpcp-print-compact h3.dpcp-print-section-title {
    margin: 4px 0 3px !important;
    padding: 2px 5px 3px !important;
    line-height: 1.16 !important;
}
.dpcp-print-page.dpcp-print-compact th,
.dpcp-print-page.dpcp-print-compact td { padding: 2.5px 3px !important; line-height: 1.18 !important; }
.dpcp-print-page.dpcp-print-compact .dpcp-print-warning-panel { padding: 3px 5px !important; }
.dpcp-print-page.dpcp-print-compact .dpcp-print-warning { margin: 0 !important; padding: 0 !important; line-height: 1.23 !important; }
.dpcp-print-page.dpcp-print-compact .dpcp-print-warning-strong { margin-top: 3px !important; padding-top: 3px !important; }
.dpcp-print-page.dpcp-print-compact .dpcp-print-note { margin: 3px 0 1px !important; padding: 2px 4px !important; line-height: 1.2 !important; }

.dpcp-print-page.dpcp-print-tight .dpcp-print-header { gap: 6px !important; padding: 2px 4px 3px !important; }
.dpcp-print-page.dpcp-print-tight .dpcp-print-kicker,
.dpcp-print-page.dpcp-print-tight .dpcp-print-document-badge { display: none !important; }
.dpcp-print-page.dpcp-print-tight .dpcp-print-header h1 { font-size: 1.34em !important; }
.dpcp-print-page.dpcp-print-tight .dpcp-print-header p,
.dpcp-print-page.dpcp-print-tight .dpcp-print-meta { line-height: 1.1 !important; }
.dpcp-print-page.dpcp-print-tight .dpcp-print-meta-card {
    padding: 2px 3px !important;
    border-top-width: 1.5px !important;
}
.dpcp-print-page.dpcp-print-tight h3.dpcp-print-section-title {
    margin: 3px 0 2px !important;
    padding: 1px 4px 2px !important;
    border-left-width: 3px !important;
    line-height: 1.12 !important;
}
.dpcp-print-page.dpcp-print-tight th,
.dpcp-print-page.dpcp-print-tight td { padding: 2px !important; line-height: 1.16 !important; }
.dpcp-print-page.dpcp-print-tight .dpcp-print-warning-panel { padding: 2px 4px !important; }
.dpcp-print-page.dpcp-print-tight .dpcp-print-warning { margin: 0 !important; padding: 0 !important; line-height: 1.12 !important; }
.dpcp-print-page.dpcp-print-tight .dpcp-print-warning-strong { margin-top: 3px !important; padding-top: 3px !important; }
.dpcp-print-page.dpcp-print-tight .dpcp-print-note { margin: 2px 0 !important; padding: 1px 3px !important; line-height: 1.12 !important; }
