/* Excel import and export. Colours come from the app's tokens so the light and dark themes both work. */
.dialog.xl-wide{width:min(960px,100%)}
.xl-check{display:flex;gap:8px;align-items:center;margin-top:12px;font-size:var(--text-control)}
.xl-check input{width:auto;min-height:0}
.xl-status{margin-top:10px;color:var(--muted);min-height:1.2em}
.xl-note{margin-bottom:10px;font-size:var(--text-control)}
.xl-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}
.xl-summary>div{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.xl-summary b{display:block;font-size:24px;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--navy)}
.xl-summary span{font-size:var(--text-sm);color:var(--muted)}
.xl-summary .xl-bad{background:var(--coral-soft);border-color:#ffc4cf}
.xl-summary .xl-bad b{color:#bd1638}
.xl-hint{color:var(--muted);margin:0 0 10px}
.xl-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 10px}
.xl-tab[aria-pressed=true]{background:var(--teal-soft);border-color:var(--teal);color:var(--teal-2);font-weight:700}
.xl-wrap{max-height:48vh}
.xl-table{min-width:560px}
.xl-table td{vertical-align:top}
.xl-n{width:52px;color:var(--muted);font-variant-numeric:tabular-nums}
.xl-badge{display:inline-flex;border-radius:99px;padding:3px 9px;font-size:var(--text-sm);font-weight:700;white-space:nowrap}
.xl-b-create{background:var(--teal-soft);color:#087675}
.xl-b-update{background:var(--violet-soft);color:#5f4fc0}
.xl-b-same{background:#eef3f4;color:#587078}
.xl-b-error{background:var(--coral-soft);color:#bd1638}
.xl-title{display:block;margin-bottom:3px}
.xl-chg{font-size:var(--text-sm);margin-top:2px;overflow-wrap:anywhere}
.xl-field{display:inline-block;min-width:92px;color:var(--muted);margin-inline-end:6px}
.xl-chg del{color:#8a5a64;text-decoration-thickness:1px}
.xl-chg ins{text-decoration:none;font-weight:600}
.xl-chg i{color:var(--muted)}
.xl-problem{font-size:var(--text-sm);color:#bd1638;margin-top:3px}
.xl-warn{font-size:var(--text-sm);color:#8a5200;margin-top:3px}
.xl-more{text-align:center;margin-top:10px}
.xl-h3{margin:16px 0 6px;font-size:var(--text-control)}
.xl-fails{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:36vh;overflow:auto}
.xl-fails li{border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:var(--text-control)}
.xl-bar{height:12px;border-radius:99px;background:var(--surface-3);overflow:hidden;margin:14px 0 6px}
.xl-bar i{display:block;height:100%;background:var(--teal);width:0;transition:width .25s}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
body.dark .xl-b-same{background:#243238;color:#b8c9ce}
body.dark .xl-b-create{background:rgba(28,168,167,.22);color:#9fe3e0}
body.dark .xl-b-update{background:#2c2652;color:#cfc6ff}
body.dark .xl-b-error,body.dark .xl-summary .xl-bad{background:#482634;color:#ffb3c4;border-color:#6b3445}
body.dark .xl-summary .xl-bad b,body.dark .xl-problem{color:#ffb3c4}
body.dark .xl-warn{color:#ffd699}
body.dark .xl-chg del{color:#d3a8b1}
@media(max-width:600px){
  .xl-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.xl-field{display:block;min-width:0}
  .xl-wrap{max-height:42vh}
  .xl-table{min-width:0}.xl-table thead{display:none}
  .xl-table tr{display:block;padding:8px 0;border-bottom:1px solid var(--line)}
  .xl-table td{display:block;border:0;padding:3px 10px}
  .xl-table td.xl-n,.xl-table td:nth-child(2){display:inline-block;width:auto}
}
@media(prefers-reduced-motion:reduce){.xl-bar i{transition:none}}
