/* ChartImport (chart-import.js): Library > Import... dialog. Colours from theme tokens only (osiris-tokens.css);
 * `html:not(#o)` (one ID of specificity) beats the legacy blanket button/table rules, as pair-reports.css does.
 * The preview table scrolls inside .ci-scroll, never the page. */
html:not(#o) #btn-import-charts{display:block;width:100%;margin:var(--o-space-3) 0;padding:4px 0;border:1px solid var(--o-line);border-radius:var(--o-radius-sm);
  background:transparent;color:var(--o-accent);font:600 var(--o-fs-sm)/1.3 var(--o-font,system-ui,sans-serif);cursor:pointer}
html:not(#o) #btn-import-charts:hover{border-color:var(--o-accent)}

html:not(#o) .ci-overlay{position:fixed;inset:0;z-index:10050;display:flex;align-items:center;justify-content:center;
  padding:var(--o-space-6);box-sizing:border-box;background:color-mix(in srgb,var(--bg) 70%,transparent)}
html:not(#o) .ci-overlay[hidden]{display:none}
html:not(#o) .ci-dialog{display:flex;flex-direction:column;gap:var(--o-space-4);width:min(1100px,100%);max-height:100%;
  box-sizing:border-box;padding:var(--o-space-5) var(--o-space-6);border:1px solid var(--o-line);border-radius:var(--o-radius-lg);
  background:var(--o-surface);box-shadow:var(--o-shadow-pop);color:var(--o-ink);
  font:500 var(--o-fs)/1.4 var(--o-font,system-ui,sans-serif);overflow:hidden}
html:not(#o) .ci-head{display:flex;align-items:center;justify-content:space-between;gap:var(--o-space-4)}
html:not(#o) .ci-title{margin:0;font:700 var(--o-fs-lg)/1.3 var(--o-font,system-ui,sans-serif);color:var(--o-ink-strong)}

html:not(#o) .ci-source{display:grid;grid-template-columns:1fr 1fr;gap:var(--o-space-4)}
html:not(#o) .ci-drop{display:flex;flex-direction:column;gap:var(--o-space-3);padding:var(--o-space-4);
  border:1px dashed var(--o-line);border-radius:var(--o-radius);color:var(--o-ink-muted)}
html:not(#o) .ci-drop.is-over{border-color:var(--o-accent);background:color-mix(in srgb,var(--o-accent) 8%,transparent)}
html:not(#o) .ci-file{color:var(--o-ink);font-size:var(--o-fs-sm)}
html:not(#o) .ci-paste{min-height:64px;resize:vertical;box-sizing:border-box;padding:var(--o-space-3);border:1px solid var(--o-line);
  border-radius:var(--o-radius);background:var(--o-surface-sunk);color:var(--o-ink);font:500 var(--o-fs-sm)/1.4 ui-monospace,monospace}

html:not(#o) .ci-options{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--o-space-4)}
html:not(#o) .ci-field{display:flex;flex-direction:column;gap:var(--o-space-1);min-width:140px}
html:not(#o) .ci-label{color:var(--o-ink-muted);font-size:var(--o-fs-sm);letter-spacing:.02em}
html:not(#o) .ci-select,html:not(#o) .ci-input{height:var(--o-h-sm);box-sizing:border-box;padding:0 var(--o-space-3);
  border:1px solid var(--o-line);border-radius:var(--o-radius-sm);background:var(--o-surface-sunk);color:var(--o-ink);font-size:var(--o-fs-sm)}

html:not(#o) .ci-btn{height:var(--o-h-sm);padding:0 var(--o-space-5);border:1px solid var(--o-line);border-radius:var(--o-radius-sm);
  background:var(--o-surface-sunk);color:var(--o-ink);font:600 var(--o-fs-sm)/1 var(--o-font,system-ui,sans-serif);cursor:pointer}
html:not(#o) .ci-btn:hover:not(:disabled){border-color:var(--o-accent)}
html:not(#o) .ci-btn:disabled{opacity:.5;cursor:default}
html:not(#o) .ci-btn-primary{border-color:var(--o-accent);background:var(--o-accent);color:var(--bg)}
html:not(#o) .ci-btn-quiet{background:transparent}
html:not(#o) .ci-close{height:var(--o-h-sm);padding:0 var(--o-space-4);border:1px solid var(--o-line);border-radius:var(--o-radius-sm);
  background:transparent;color:var(--o-ink-muted);font-size:var(--o-fs-sm);cursor:pointer}
html:not(#o) :is(.ci-btn,.ci-close,.ci-select,.ci-input,.ci-paste):focus-visible{outline:2px solid var(--o-focus);outline-offset:1px}

html:not(#o) .ci-status{min-height:1.4em;font-size:var(--o-fs-sm);color:var(--o-ink-muted);overflow-wrap:anywhere}
html:not(#o) .ci-status[data-kind=error]{color:var(--o-danger)}
html:not(#o) .ci-status[data-kind=ok]{color:var(--o-ink-strong)}
html:not(#o) .ci-tools{display:flex;align-items:center;justify-content:space-between;gap:var(--o-space-4)}
html:not(#o) .ci-tools[hidden],html:not(#o) .ci-btn[hidden]{display:none}
html:not(#o) .ci-all{display:flex;align-items:center;gap:var(--o-space-3);font-size:var(--o-fs-sm)}

html:not(#o) .ci-scroll{flex:1 1 auto;min-height:0;overflow:auto;border:1px solid var(--o-line);border-radius:var(--o-radius)}
html:not(#o) .ci-scroll:has(.ci-table:empty){display:none}
html:not(#o) .ci-table{width:100%;min-width:0;border-collapse:collapse;font-size:var(--o-fs-sm)}
html:not(#o) .ci-table th{position:sticky;top:0;z-index:1;padding:var(--o-space-2) var(--o-space-3);background:var(--o-surface);
  color:var(--o-ink-muted);font-weight:600;text-align:left;white-space:nowrap;border-bottom:1px solid var(--o-line)}
html:not(#o) .ci-table td{padding:var(--o-space-2) var(--o-space-3);vertical-align:top;border-bottom:1px solid
  color-mix(in srgb,var(--o-line) 60%,transparent);overflow-wrap:break-word}
html:not(#o) .ci-table td:is(:nth-child(1),:nth-child(2),:nth-child(4),:nth-child(6),:nth-child(8)){white-space:nowrap}
html:not(#o) .ci-table td.ci-msgs{min-width:200px}
html:not(#o) .ci-table tr[data-state=error] td{color:var(--o-ink-muted)}
html:not(#o) .ci-table tr[data-state=duplicate] td,html:not(#o) .ci-table tr[data-state=done] td{opacity:.7}
html:not(#o) .ci-err{color:var(--o-danger)}
html:not(#o) .ci-warn{color:var(--o-ink)}
html:not(#o) .ci-warn::before{content:'! ';color:var(--o-accent);font-weight:700}
html:not(#o) .ci-ok{color:var(--o-ink-muted)}

html:not(#o) .ci-foot{display:flex;align-items:center;justify-content:flex-end;gap:var(--o-space-5)}
html:not(#o) .ci-count{color:var(--o-ink-muted);font-size:var(--o-fs-sm)}

@media (max-width:700px){
  html:not(#o) .ci-overlay{padding:0}
  html:not(#o) .ci-dialog{height:100%;border-radius:0;padding:var(--o-space-4)}
  html:not(#o) .ci-source{grid-template-columns:1fr}
}
