/* Nexum ConsentPay v1.0.0 — "Docket" design: right-docked drawer, mono micro-labels,
   hairline rules, ink + gold. Uses the portal's --lmm-* tokens (nexum-spa ≥ 1.6.4). */

.cnp-eyebrow, .cnp-flabel, .cnp-sec, .cnp-thead, .cnp-row-ref, .cnp-count, .cnp-card-title, .cnp-tab {
    font-family: var(--lmm-mono); text-transform: uppercase; letter-spacing: .12em;
}
.cnp-mono { font-family: var(--lmm-mono); letter-spacing: .02em; }
.cnp-muted { color: var(--lmm-text2); font-size: 12.5px; }
.cnp-r { text-align: right; }
.cnp-eyebrow { font-size: 10.5px; color: var(--lmm-green); margin-bottom: 8px; }

/* ── Tabs (boxed segmented) ───────────────────────────────────────────────── */
.cnp-tabbar { display: inline-flex; flex-wrap: wrap; border: 1px solid var(--lmm-border2, var(--lmm-border)); border-radius: 3px; background: var(--lmm-surface); margin: 6px 0 22px; overflow: hidden; }
.cnp-tab { background: none; border: none; border-right: 1px solid var(--lmm-border); color: var(--lmm-text2); padding: 11px 18px; font-size: 10.5px; font-weight: 600; cursor: pointer; transition: background .12s, color .12s; }
.cnp-tab:last-child { border-right: none; }
.cnp-tab:hover { color: var(--lmm-text); background: var(--lmm-hover, rgba(128,128,128,.08)); }
.cnp-tab.is-active { background: var(--lmm-green); color: var(--lmm-on-accent, #17130a); }
.cnp-panel { display: none; }
.cnp-panel.is-active { display: block; }

/* ── Form atoms ──────────────────────────────────────────────────────────── */
.cnp-wrap .lmm-input, .cnp-input {
    width: 100%; box-sizing: border-box; background: var(--lmm-bg); border: 1px solid var(--lmm-border2, var(--lmm-border));
    color: var(--lmm-text); border-radius: 2px; padding: 10px 12px; font-size: 14px; font-family: inherit; min-width: 0;
}
.cnp-input:focus, .cnp-wrap .lmm-input:focus { outline: none; border-color: var(--lmm-green); }
textarea.cnp-input, .cnp-wrap textarea.lmm-input { resize: vertical; line-height: 1.5; }
.cnp-code { font-family: var(--lmm-mono); font-size: 12px; }
.cnp-input.is-locked { background: var(--lmm-surface2, var(--lmm-surface)); color: var(--lmm-text2); }
.cnp-flabel { display: block; font-size: 10px; color: var(--lmm-text2); margin: 16px 0 7px; }
.cnp-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
@media (max-width: 640px) { .cnp-row2 { grid-template-columns: 1fr; } }
.cnp-check { display: flex; align-items: center; gap: 8px; margin-top: 14px; font-size: 13px; color: var(--lmm-text); cursor: pointer; }

.cnp-btn {
    background: none; border: 1px solid var(--lmm-border2, var(--lmm-border)); color: var(--lmm-text2); border-radius: 2px;
    padding: 10px 16px; font-family: inherit; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; cursor: pointer;
    transition: background .12s, color .12s, border-color .12s;
}
.cnp-btn:hover { color: var(--lmm-text); background: var(--lmm-hover, rgba(128,128,128,.08)); }
.cnp-btn:disabled { opacity: .55; cursor: default; }
.cnp-btn-primary { background: var(--lmm-green); border-color: var(--lmm-green); color: var(--lmm-on-accent, #17130a); font-weight: 800; }
.cnp-btn-primary:hover { background: var(--lmm-green-dim, var(--lmm-green)); border-color: var(--lmm-green-dim, var(--lmm-green)); color: var(--lmm-on-accent, #17130a); }
.cnp-btn-sm { padding: 6px 12px; font-size: 10px; }
.cnp-btn-block { display: block; width: 100%; margin-top: 16px; }
.cnp-link { background: none; border: none; color: var(--lmm-green); font-size: 12.5px; cursor: pointer; padding: 2px 0; font-family: inherit; }
.cnp-link:hover { text-decoration: underline; }
.cnp-link-danger { color: #ef4444; }
.cnp-chip { display: inline-block; padding: 1px 7px; border-radius: 2px; font-size: 10px; font-family: var(--lmm-mono); letter-spacing: .08em; text-transform: uppercase; border: 1px solid var(--lmm-border2, var(--lmm-border)); color: var(--lmm-text2); margin-left: 6px; }

/* ── Authorize tab ───────────────────────────────────────────────────────── */
.cnp-intro { border-left: 3px solid var(--lmm-green); padding: 4px 0 4px 16px; margin-bottom: 20px; max-width: 640px; }
.cnp-intro p { margin: 0; color: var(--lmm-text2); line-height: 1.6; font-size: 13.5px; }
.cnp-searchbar, .cnp-filterbar { display: flex; gap: 10px; margin-bottom: 16px; align-items: stretch; flex-wrap: wrap; }
.cnp-searchbar .lmm-input { flex: 1; min-width: 220px; }
.cnp-filterbar .lmm-input { flex: 1; min-width: 200px; }
.cnp-filterbar select.lmm-input { flex: 0 0 180px; }
.cnp-empty { padding: 36px 16px; text-align: center; color: var(--lmm-text2); font-size: 13px; border: 1px dashed var(--lmm-border2, var(--lmm-border)); border-radius: 3px; }
.cnp-table { border: 1px solid var(--lmm-border); border-radius: 3px; background: var(--lmm-surface); }
.cnp-thead, .cnp-trow { display: grid; grid-template-columns: 1.4fr 1.6fr .8fr .9fr 1fr; gap: 12px; padding: 12px 16px; align-items: center; }
.cnp-table-sm .cnp-thead, .cnp-table-sm .cnp-trow { grid-template-columns: .6fr .8fr .8fr 1fr; }
.cnp-thead { font-size: 9.5px; color: var(--lmm-text3, var(--lmm-text2)); border-bottom: 1px solid var(--lmm-border2, var(--lmm-border)); }
.cnp-trow { border-bottom: 1px solid var(--lmm-border); font-size: 13.5px; transition: background .08s; }
.cnp-trow:last-child { border-bottom: none; }
.cnp-trow:hover { background: var(--lmm-hover, rgba(128,128,128,.06)); }

/* ── Ledger rows (history / account pane) ────────────────────────────────── */
.cnp-count { font-size: 10px; color: var(--lmm-text2); margin: 0 0 8px; }
.cnp-ledger { border-top: 1px solid var(--lmm-border2, var(--lmm-border)); }
.cnp-row { display: grid; grid-template-columns: 4px 84px 1fr auto auto; gap: 16px; align-items: center; padding: 14px 4px 14px 0; border-bottom: 1px solid var(--lmm-border); transition: background .08s; }
.cnp-row:hover { background: var(--lmm-hover, rgba(128,128,128,.06)); }
.cnp-row-bar { align-self: stretch; background: var(--lmm-border2, #888); }
.cnp-bar-pending { background: #eab308; } .cnp-bar-signed { background: #22c55e; } .cnp-bar-expired { background: #8b8f98; } .cnp-bar-voided { background: #ef4444; }
.cnp-row-ref { font-size: 10.5px; color: var(--lmm-text2); }
.cnp-row-title { font-family: var(--lmm-font-display); font-weight: 700; font-size: 15px; letter-spacing: -.01em; }
.cnp-row-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 4px; font-size: 12px; color: var(--lmm-text2); }
.cnp-row-side { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.cnp-row-total { font-family: var(--lmm-font-display); font-weight: 800; font-size: 17px; letter-spacing: -.02em; }
.cnp-row-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; min-width: 70px; padding-right: 8px; }
@media (max-width: 760px) { .cnp-row { grid-template-columns: 4px 1fr auto; } .cnp-row-ref { display: none; } .cnp-row-actions { grid-column: 2 / -1; flex-direction: row; gap: 14px; justify-content: flex-start; } }
.cnp-badge { display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px; border-radius: 2px; font-family: var(--lmm-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--c); background: color-mix(in srgb, var(--c) 14%, transparent); border: 1px solid color-mix(in srgb, var(--c) 40%, transparent); }
.cnp-badge i { width: 6px; height: 6px; border-radius: 50%; background: var(--c); display: inline-block; }
.cnp-st-pending { --c: #d19a0b; } .cnp-st-signed { --c: #1f9d55; } .cnp-st-expired { --c: #7c828d; } .cnp-st-voided { --c: #dc4a3d; }
.cnp-pager { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 16px 0; }

/* ── Cards / split (fee matrix, templates, settings) ─────────────────────── */
.cnp-split { display: grid; grid-template-columns: 340px 1fr; gap: 18px; align-items: start; }
.cnp-split-wide { grid-template-columns: 320px 1fr; }
@media (max-width: 900px) { .cnp-split, .cnp-split-wide { grid-template-columns: 1fr; } }
.cnp-card { background: var(--lmm-surface); border: 1px solid var(--lmm-border); border-radius: 3px; padding: 20px 22px 22px; }
.cnp-card-narrow { max-width: 760px; }
.cnp-card-title { font-size: 10.5px; color: var(--lmm-green); margin-bottom: 4px; }
.cnp-divider { height: 1px; background: var(--lmm-border); margin: 22px 0 18px; }
.cnp-notice { margin-top: 14px; padding: 11px 14px; border-left: 3px solid var(--lmm-border2, var(--lmm-border)); background: var(--lmm-bg); font-size: 12px; color: var(--lmm-text2); line-height: 1.9; }
.cnp-notice code, .cnp-wrap code { font-family: var(--lmm-mono); font-size: 11px; background: var(--lmm-surface2, var(--lmm-surface)); padding: 1px 5px; border-radius: 2px; color: var(--lmm-text); }
.cnp-tpl-item { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 11px 12px; border: 1px solid transparent; border-bottom-color: var(--lmm-border); cursor: pointer; }
.cnp-tpl-item:hover { background: var(--lmm-hover, rgba(128,128,128,.06)); }
.cnp-tpl-item.is-active { border-left: 3px solid var(--lmm-green); background: var(--lmm-hover, rgba(128,128,128,.06)); }

/* ── Drawer ──────────────────────────────────────────────────────────────── */
.cnp-overlay { position: fixed; top: 0; left: 0; bottom: 0; right: var(--lmm-sidebar-w, 240px); background: rgba(8,9,11,.55); z-index: 9100; display: flex; align-items: stretch; justify-content: flex-end; }
@media (max-width: 768px) { .cnp-overlay { right: 0; } }
.cnp-drawer {
    width: min(620px, 100%); height: 100%; background: var(--lmm-surface); border-left: 1px solid var(--lmm-border2, var(--lmm-border));
    display: flex; flex-direction: column; overflow: hidden; box-shadow: -28px 0 70px rgba(0,0,0,.38);
    animation: cnp-slide-in .22s cubic-bezier(.2,.8,.2,1); color: var(--lmm-text);
}
@keyframes cnp-slide-in { from { transform: translateX(36px); opacity: 0; } to { transform: none; opacity: 1; } }
.cnp-drawer-head { padding: 22px 28px 18px; border-bottom: 1px solid var(--lmm-border2, var(--lmm-border)); background: var(--lmm-surface2, var(--lmm-surface)); display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex: none; }
.cnp-drawer-title { font-family: var(--lmm-mono); font-size: 19px; font-weight: 700; letter-spacing: -.01em; }
.cnp-close { width: 32px; height: 32px; flex: none; display: flex; align-items: center; justify-content: center; border-radius: 2px; color: var(--lmm-text2); font-size: 14px; background: none; border: 1px solid var(--lmm-border2, var(--lmm-border)); cursor: pointer; }
.cnp-close:hover { background: var(--lmm-surface3, var(--lmm-bg)); color: var(--lmm-text); }
.cnp-drawer-body { padding: 6px 28px 30px; overflow-y: auto; flex: 1; min-height: 0; }
.cnp-drawer-foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 28px; border-top: 1px solid var(--lmm-border2, var(--lmm-border)); background: var(--lmm-surface2, var(--lmm-surface)); flex: none; }
.cnp-foot-actions { display: flex; gap: 10px; }
.cnp-sec { font-size: 10px; color: var(--lmm-text2); margin: 26px 0 4px; display: flex; align-items: center; gap: 12px; }
.cnp-sec::after { content: ''; flex: 1; height: 1px; background: var(--lmm-border2, var(--lmm-border)); }
.cnp-payer { display: flex; align-items: baseline; gap: 14px; padding: 8px 0 2px; font-size: 16px; }
.cnp-seg { display: flex; border: 1px solid var(--lmm-border2, var(--lmm-border)); border-radius: 2px; overflow: hidden; }
.cnp-seg-btn { flex: 1; background: none; border: none; border-right: 1px solid var(--lmm-border); padding: 10px 4px; font-family: var(--lmm-mono); font-size: 11px; font-weight: 700; letter-spacing: .06em; color: var(--lmm-text2); cursor: pointer; }
.cnp-seg-btn:last-child { border-right: none; }
.cnp-seg-btn:hover { background: var(--lmm-hover, rgba(128,128,128,.08)); color: var(--lmm-text); }
.cnp-seg-btn.is-active { background: var(--lmm-green); color: var(--lmm-on-accent, #17130a); }
.cnp-fee-wrap { display: grid; grid-template-columns: 1.5fr 1fr; gap: 8px; }
.cnp-flabel .cnp-muted { font-family: inherit; font-size: 10.5px; text-transform: none; letter-spacing: 0; }
.cnp-total { display: flex; justify-content: space-between; align-items: baseline; margin-top: 18px; padding: 14px 16px; border: 1px solid var(--lmm-border); border-top: 2px solid var(--lmm-green); background: var(--lmm-bg); }
.cnp-total strong { font-family: var(--lmm-font-display); font-size: 26px; font-weight: 800; letter-spacing: -.02em; }
.cnp-fee-note { min-height: 16px; margin-top: 8px; font-size: 12px; color: var(--lmm-text2); }
.cnp-warn { margin-top: 16px; padding: 10px 14px; border: 1px solid #eab30855; border-left: 3px solid #eab308; background: #eab30815; font-size: 13px; line-height: 1.5; }
.cnp-ok { margin-top: 14px; padding: 10px 14px; border: 1px solid #22c55e55; border-left: 3px solid #22c55e; background: #22c55e15; font-size: 13px; }
.cnp-result { text-align: center; padding: 34px 6px 10px; }
.cnp-tick { width: 54px; height: 54px; border: 2px solid #22c55e; border-radius: 50%; color: #22c55e; font-size: 28px; line-height: 50px; margin: 0 auto 14px; }
.cnp-result-title { font-family: var(--lmm-mono); font-size: 20px; font-weight: 700; margin-bottom: 4px; }
.cnp-result .cnp-flabel { text-align: left; }
.cnp-linkrow { display: flex; gap: 8px; }

/* ── DebtorVault account pane ────────────────────────────────────────────── */
.cnp-pane-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 14px; }
.cnp-pane-list .cnp-row { grid-template-columns: 4px 1fr auto auto; padding-left: 0; }
.cnp-pane-list .cnp-row-ref { display: none; }

/* ── Inline PDF viewer ───────────────────────────────────────────────────── */
.cnp-viewer { margin-top: 22px; display: none; }
.cnp-viewer.is-on { display: block; }
.cnp-viewer-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--lmm-border2, var(--lmm-border)); margin-bottom: 12px; }
.cnp-viewer-ref { font-family: var(--lmm-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--lmm-text3); }
.cnp-viewer-tools { display: flex; gap: 14px; }
.cnp-viewer-tools a { text-decoration: none; cursor: pointer; }
.cnp-viewer-frame { display: block; width: 100%; height: 720px; border: 1px solid var(--lmm-border2, var(--lmm-border)); background: #fff; }
.cnp-paylink { cursor: pointer; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--lmm-border2, var(--lmm-border)); }
.cnp-paylink:hover { color: var(--lmm-green); }

/* ── Toast ───────────────────────────────────────────────────────────────── */
.cnp-toast { position: fixed; bottom: 24px; left: 24px; z-index: 9600; background: var(--lmm-surface); border: 1px solid var(--lmm-green); color: var(--lmm-text); border-radius: 2px; padding: 12px 18px; font-size: 13px; opacity: 0; transform: translateY(8px); transition: all .2s ease; max-width: 380px; }
.cnp-toast.is-open { opacity: 1; transform: none; }
.cnp-toast-err { border-color: #ef4444; }
