/* SEF u Excel. Uses the site's CSS variables; fallbacks only for standalone preview. */
.se {
  --se-bg: var(--bg, #fff);
  --se-fg: var(--fg, #111);
  --se-muted: var(--muted, #5c5c5c);
  --se-accent: var(--accent, #1f5eff);
  --se-ink: var(--accent-ink, #006b4f);
  --se-line: var(--line, #d9d9d9);
  --se-card: var(--card, #f6f6f6);
  color: var(--se-fg);
  max-width: 48rem;
  font-variant-numeric: tabular-nums;
}
.se *, .se *::before, .se *::after { box-sizing: border-box; }
.se :focus-visible { outline: 2px solid var(--se-accent); outline-offset: 2px; }

.se-drop {
  display: grid;
  gap: .6rem;
  padding: 1.5rem 1.25rem;
  background: var(--se-card);
  border: 2px dashed var(--se-line);
  border-radius: 12px;
  text-align: center;
  justify-items: center;
}
.se-drop.se-over { border-color: var(--se-accent); }
.se-drop-t { margin: 0; font-weight: 600; font-size: 1.1rem; }
.se-row { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: center; align-items: center; }
.se-private { margin: .25rem 0 0; font-size: .9rem; color: var(--se-ink); font-weight: 600; }
.se-file, .se-sr {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.se-btn {
  min-height: 2.75rem;
  padding: .6rem 1.25rem;
  font: inherit;
  font-weight: 600;
  color: var(--se-bg);
  background: var(--se-fg);
  border: 0;
  border-radius: 8px;
  cursor: pointer;
}
.se-btn[disabled] { opacity: .5; cursor: default; }
.se-link-btn {
  min-height: 2.75rem;
  padding: .6rem .5rem;
  font: inherit;
  color: var(--se-ink);
  background: none;
  border: 0;
  text-decoration: underline;
  cursor: pointer;
}
.se-link-btn[disabled] { opacity: .5; cursor: default; }

.se-hint { margin: .5rem 0 0; font-size: .9rem; color: var(--se-muted); }
.se-hint a { color: var(--se-ink); }
.se-opt { display: flex; gap: .6rem; align-items: flex-start; margin: 1rem 0 0; font-size: .95rem; }
.se-opt input { margin: .25rem 0 0; width: 1.1rem; height: 1.1rem; flex: none; accent-color: var(--se-accent); }
.se-opt label { cursor: pointer; }

.se-status { min-height: 1.5rem; margin: 1rem 0 0; color: var(--se-muted); }
.se-error { margin: .25rem 0 0; color: #c62828; font-weight: 600; }
.se-error:empty { display: none; }
@media (prefers-color-scheme: dark) { .se-error, .se-bad { color: #ff8a80; } }

.se-out { display: grid; gap: 1rem; margin-top: .5rem; }
.se-out:empty { display: none; }
.se-out .se-btn { justify-self: start; }
.se-summary { margin: 0; }
.se-bad { color: #c62828; }
.se-h { margin: .5rem 0 0; font-size: 1.05rem; }

.se-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--se-line); border-radius: 8px; }
.se-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.se-table caption { caption-side: bottom; padding: .5rem .75rem; text-align: left; color: var(--se-muted); font-size: .85rem; }
.se-table th, .se-table td { padding: .5rem .75rem; text-align: left; border-bottom: 1px solid var(--se-line); white-space: nowrap; }
.se-table thead th { font-weight: 600; background: var(--se-card); }
.se-table tbody th { font-weight: 600; }
.se-num { text-align: right !important; }

.se-issues { margin: 0; padding-left: 1.25rem; display: grid; gap: .35rem; font-size: .92rem; }
.se-rule { color: var(--se-muted); font-size: .85rem; }

.se-sources { margin-top: 1.25rem; font-size: .9rem; color: var(--se-muted); }
.se-sources summary { cursor: pointer; color: var(--se-fg); font-weight: 600; padding: .7rem 0; }
.se-sources a { color: var(--se-ink); }
.se-sources q { font-style: italic; }
.se-bridge { margin: 1.25rem 0 0; padding-top: 1rem; border-top: 1px solid var(--se-line); }
.se-bridge a { color: var(--se-ink); font-weight: 600; }

@media (max-width: 480px) {
  .se-drop { padding: 1.25rem 1rem; }
  .se-table th, .se-table td { padding: .45rem .5rem; }
}
