/* Pharmacy insurance (Documents > Contracts > Insurance contracts, Sales > Insurance claims and its report, the printed claim). Tokens from admin.css only, logical properties, light + dark through the tokens. */

/* ------------------------------------------------------------ shared */
.ins-hint { margin: 0 0 8px; }
.ins-none { padding: 14px 4px; }
.ins-dim td { color: var(--muted); }
.ins-stat-due { border-color: color-mix(in srgb, var(--accent) 45%, var(--line)); }
.ins-tabs { margin-block: 4px 12px; }
.ins-tabs .tab { text-decoration: none; }
.ins-sec { margin-block: 18px 0; }
.ins-sec > .cf-h { margin-block-end: 8px; }
.ins-page .stat-strip { margin-block-end: 14px; }

/* ------------------------------------------------------------ contract form */
.ins-items { display: grid; gap: 10px; margin-block-end: 8px; }
.ins-covered, .ins-never { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ins-item-sec { min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--panel-2); }
.ins-item-sec .cf-h { margin-block-end: 6px; }
.ins-chips { margin-block-end: 10px; min-height: 28px; }
.ins-add { max-width: 100%; }
.ins-add select { width: 100%; min-height: 40px; padding-inline: 10px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--panel); color: var(--ink); }
.ins-warn { margin-block: 0; }
.ins-files-card { margin-block-start: 22px; padding-block-start: 14px; border-block-start: 1px solid var(--line); }
.ins-files-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-block-end: 6px; }
.ins-files { display: grid; gap: 8px; }
.ins-file { display: flex; align-items: center; gap: 6px; min-width: 0; padding: 6px 8px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--panel); }
.ins-file-main { flex: 1; min-width: 0; display: flex; align-items: center; gap: 10px; padding: 6px; border: 0; border-radius: var(--r-sm); background: none; color: var(--ink); text-align: start; cursor: pointer; }
.ins-file-main:hover { background: var(--panel-2); }
.ins-file-main .ico { color: var(--accent-d); flex: none; }
.ins-file-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 650; }
.ins-file-main small { flex: none; }

/* ------------------------------------------------------------ claim document */
.ins-items-cell { display: inline-block; max-width: 130px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }
.ins-reason { max-width: 200px; white-space: normal; }
.data-table.ins-lines td, .data-table.ins-lines th { vertical-align: top; padding-inline: 8px; }
.ins-lines tr.ins-refund td { background: color-mix(in srgb, var(--danger) 6%, transparent); }
.ins-pay tr.ins-reversed td { opacity: .6; text-decoration: line-through; text-decoration-color: color-mix(in srgb, var(--muted) 50%, transparent); }
.ins-pay tr.ins-reversed td:last-child { text-decoration: none; }
.ins-reject-line { margin-block-end: 10px; }
.ins-collect-sum { margin-block-start: 12px; padding: 10px 12px; border-radius: var(--r-sm); background: var(--panel-2); }
.btn.btn-sm { min-height: 32px; padding: 4px 10px; font-size: 13px; }

/* ------------------------------------------------------------ report */
.ins-rep-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-block-end: 12px; }
.ins-rep-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.ins-rep-card { margin-block-start: 14px; }
.ins-rep-out.is-loading { opacity: .6; transition: opacity .15s; }
.ins-rep tr.ins-subtotal td { background: var(--panel-2); font-weight: 750; }

/* ------------------------------------------------------------ phone: tables become cards */
@media (max-width: 720px) {
  .ins-covered, .ins-never { grid-template-columns: minmax(0, 1fr); }
  .ins-items-cell, .ins-reason { max-width: none; white-space: normal; }
  .ins-rt thead { display: none; }
  .ins-rt, .ins-rt tbody, .ins-rt tfoot { display: block; }
  .ins-rt tr { display: grid; gap: 6px; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r-sm); margin-block-end: 8px; background: var(--panel); }
  .ins-rt td { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 0; border: 0; text-align: end; white-space: normal; background: none; }
  .ins-rt td[data-label]:not([data-label=""])::before { content: attr(data-label); color: var(--muted); font-size: 12px; font-weight: 700; text-align: start; flex: 0 0 auto; }
  .ins-rt td:first-child { justify-content: flex-start; text-align: start; }
  .ins-rt .num { text-align: end; }
  .ins-rt tfoot tr { background: var(--panel-2); }
  .ins-rep-bar { align-items: stretch; }
  .ins-rep-filters select { max-width: 100%; }
}

/* ------------------------------------------------------------ the printed claim (A4; black on white whatever the theme) */
.ins-print { color: #000; background: #fff; font: 11px/1.45 var(--font); }
.ins-print * { box-sizing: border-box; }
.ins-pr-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding-block-end: 8px; border-block-end: 2px solid #000; }
.ins-pr-co { font-size: 15px; }
.ins-pr-small { font-size: 10px; color: #333; }
.ins-pr-title { text-align: end; }
.ins-pr-title h1 { font-size: 20px; margin: 0 0 2px; }
.ins-pr-meta { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-block: 10px; }
.ins-pr-meta div { display: grid; gap: 1px; padding: 6px 8px; border: 1px solid #999; border-radius: 4px; }
.ins-pr-meta span { font-size: 9px; text-transform: uppercase; color: #444; }
.ins-pr-lines { width: 100%; border-collapse: collapse; font-size: 10px; }
.ins-pr-lines th, .ins-pr-lines td { padding: 4px 5px; border: 1px solid #999; vertical-align: top; text-align: start; }
.ins-pr-lines th { background: #eee; font-weight: 700; }
.ins-pr-lines .n { text-align: end; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ins-pr-lines tfoot td { font-weight: 800; background: #f5f5f5; }
.ins-pr-lines tr.ins-pr-refund td { color: #8a1c1c; }
.ins-pr-lines small { color: #444; }
.ins-pr-items { max-width: 150px; }
.ins-pr-bottom { display: flex; justify-content: flex-end; margin-block: 10px; }
.ins-pr-totals { min-width: 260px; border: 1px solid #999; border-radius: 4px; }
.ins-pr-trow { display: flex; justify-content: space-between; gap: 16px; padding: 4px 8px; border-block-end: 1px solid #ddd; }
.ins-pr-trow:last-child { border-block-end: 0; }
.ins-pr-trow.grand { font-size: 12px; background: #eee; }
.ins-pr-sign { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-block-start: 34px; }
.ins-pr-sign span { display: block; padding-block-start: 4px; font-size: 10px; color: #333; }
.ins-pr-sign div { margin-block-start: 30px; border-block-start: 1px solid #000; }
.ins-pr-foot { margin-block-start: 14px; font-size: 9px; color: #555; text-align: center; }
.ins-reject-btn { color: var(--danger-ink); }
.ins-reject-txt { display: none; }
@media (max-width: 720px) {
  .ins-rt td:has(> .ins-reject-btn) { justify-content: flex-end; }
  .ins-reject-btn { width: auto; padding-inline: 12px; gap: 6px; display: inline-flex; align-items: center; }
  .ins-reject-txt { display: inline; font-weight: 700; }
}
