/* ============================================================================
 * SuperAndy — structure des bases (assets/schema/*) : onglet « Bases de
 * données », badges de la liste des clients, onglet « Structure » de la fiche.
 * Réutilise .card, .badge, .rt-metrics, .ntf-table ; tokens de styles.css
 * uniquement (sombre par défaut, clair porté par :root).
 * ========================================================================== */

.sch-root{ padding-bottom:70px; }
.sch-soft{ color:var(--soft); }
.sch-mono{ font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; }
.sch-lead{ margin:0 0 12px; }
.sch-h4{ margin:16px 0 8px; font-size:13px; color:var(--soft); text-transform:uppercase; letter-spacing:.4px; }
.sch-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:10px; }
.sch-offscreen{ position:fixed; left:-9999px; top:0; }

/* ---- Contrôle segmenté (general / management, prototype / SQL) ---- */
.sch-seg{ display:inline-flex; background:var(--panel2); border:1px solid var(--border); border-radius:9px; padding:3px; gap:2px; }
.sch-seg a, .sch-seg button{ border:0; background:transparent; color:var(--soft); font-weight:650; font-size:13px;
  padding:6px 12px; border-radius:7px; cursor:pointer; }
.sch-seg a:hover, .sch-seg button:hover{ color:var(--text); }
.sch-seg .active{ background:var(--accent); color:#fff; }
.sch-seg--small a, .sch-seg--small button{ padding:4px 10px; font-size:12.5px; }

/* ---- Prototype ---- */
.sch-proto-chip{ display:inline-flex; align-items:center; gap:4px; font-size:13px; font-weight:600;
  background:var(--panel2); border:1px solid var(--border); border-radius:999px; padding:5px 12px; }
.sch-proto-chip .saIcon{ color:var(--warn); }
.sch-proto-chip.is-none .saIcon{ color:var(--soft); }
.sch-star{ flex:none; width:30px; height:30px; display:inline-grid; place-items:center; border-radius:8px;
  background:transparent; border:1px solid transparent; color:var(--soft); padding:0; }
.sch-star .saIcon{ width:16px; height:16px; }
.sch-star:hover{ border-color:var(--border); color:var(--text); }
.sch-star.is-on{ color:var(--warn); }
.sch-star.is-on svg path{ fill:currentColor; }
.sch-rowbadges{ display:inline-flex; flex-wrap:wrap; gap:4px; justify-content:flex-end; }
.sch-rowbadges .badge{ font-size:10.5px; padding:2px 7px; }
.sch-toolbar{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.sch-check-status{ font-size:12px; }

/* ---- Référence ---- */
.sch-sqlinput{ width:100%; min-height:160px; max-height:420px; resize:vertical; background:var(--bg); color:var(--text);
  border:1px solid var(--border); border-radius:8px; padding:10px; font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace; }
.sch-sqlinput:focus{ outline:none; border-color:var(--accent); }
.sch-file{ display:none; }
.sch-parse{ margin-top:10px; }
.sch-check{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--soft); cursor:pointer; }
.sch-details{ margin-top:10px; }
.sch-details summary{ cursor:pointer; color:var(--soft); font-weight:600; font-size:13px; }

/* ---- Politique ---- */
.sch-policies{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:8px; }
.sch-policy{ display:flex; gap:10px; align-items:flex-start; padding:10px 12px; border:1px solid var(--border);
  border-radius:9px; background:var(--panel2); cursor:pointer; }
.sch-policy input{ margin-top:3px; }
.sch-policy-t{ font-weight:650; font-size:13px; }
.sch-policy-d{ color:var(--soft); font-size:12px; margin-top:2px; }
.sch-policy.is-danger{ border-color:rgba(239,68,68,.35); }
.sch-policy.is-danger.is-on{ background:rgba(239,68,68,.10); border-color:var(--ko); }
.sch-policy.is-danger .sch-policy-t{ color:var(--ko); }

/* ---- Analyse ---- */
.sch-runcard .card-h{ flex-wrap:wrap; margin-bottom:0; }
.sch-progress{ flex:0 1 220px; height:6px; background:var(--panel2); border-radius:999px; overflow:hidden; border:1px solid var(--border); }
.sch-progress-bar{ height:100%; background:var(--accent); transition:width .25s ease; }
.sch-progress.is-running .sch-progress-bar{ background:linear-gradient(90deg,var(--accent),var(--accent2)); }
.sch-stale{ margin-top:12px; display:flex; align-items:center; gap:6px; }

/* ---- Rapport ---- */
.sch-tiles{ margin-bottom:14px; }
.sch-tile-sub{ font-size:10.5px; color:var(--soft); margin-top:3px; }
.sch-alerts{ display:flex; flex-direction:column; gap:8px; }
.sch-alert{ display:flex; gap:10px; padding:10px 12px; border-radius:9px; border:1px solid var(--border); background:var(--panel2); }
.sch-alert > .saIcon{ width:18px; height:18px; margin-top:1px; }
.sch-alert-body{ min-width:0; flex:1; }
.sch-alert-t{ font-weight:700; font-size:13px; display:flex; gap:8px; flex-wrap:wrap; align-items:baseline; }
.sch-alert-sev{ font-size:10.5px; text-transform:uppercase; letter-spacing:.5px; opacity:.85; }
.sch-alert-d{ color:var(--soft); font-size:12.5px; margin-top:3px; }
.sch-alert-items{ margin:6px 0 0; padding-left:18px; font-size:12.5px; }
.sch-alert-items li{ margin:2px 0; overflow-wrap:anywhere; }
.sch-alert-items .sch-more{ list-style:none; margin-left:-18px; margin-top:6px; }
.sch-alert--danger{ border-color:rgba(239,68,68,.45); background:rgba(239,68,68,.08); }
.sch-alert--danger > .saIcon, .sch-alert--danger .sch-alert-sev{ color:var(--ko); }
.sch-alert--warn{ border-color:rgba(245,158,11,.45); background:rgba(245,158,11,.08); }
.sch-alert--warn > .saIcon, .sch-alert--warn .sch-alert-sev{ color:var(--warn); }
.sch-alert--info > .saIcon, .sch-alert--info .sch-alert-sev{ color:var(--accent); }
.sch-alert--ok{ border-color:rgba(34,197,94,.4); background:rgba(34,197,94,.08); }
.sch-alert--ok > .saIcon{ color:var(--ok); }
.sch-diff{ margin-top:4px; font:11.5px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace; border-radius:6px; overflow:hidden; border:1px solid var(--border); }
.sch-diff > div{ padding:2px 8px; white-space:pre-wrap; overflow-wrap:anywhere; }
.sch-diff-maj{ background:rgba(59,130,246,.10); }
.sch-diff-min{ background:rgba(245,158,11,.14); }

/* ---- Renommages ---- */
.sch-rens{ display:flex; flex-direction:column; gap:6px; }
.sch-ren{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:8px 10px; border:1px solid var(--border); border-radius:8px; background:var(--panel2); }
.sch-ren-main{ flex:1; min-width:220px; }
.sch-ren-main .sch-soft{ font-size:11.5px; }
.sch-ren-actions{ display:flex; gap:4px; }
.sch-ren-actions .sch-on{ border-color:var(--accent); color:var(--accent); }

/* ---- Tables ---- */
.sch-table{ min-width:900px; }
.sch-table tr.is-open td{ background:var(--panel2); }
.sch-detailrow > td{ white-space:normal; background:var(--bg); padding:12px 14px 16px; }
.sch-ops{ min-width:640px; }

/* ---- Détail d'une base ---- */
.sch-detail{ display:flex; flex-direction:column; gap:10px; white-space:normal; }
.sch-meta{ display:flex; flex-wrap:wrap; gap:8px 14px; align-items:center; font-size:12.5px; }
.sch-meta > span{ display:inline-flex; align-items:center; }
.sch-stmt{ border:1px solid var(--border); border-left:3px solid var(--ok); border-radius:9px; background:var(--panel); overflow:hidden; }
.sch-stmt--caution{ border-left-color:var(--warn); }
.sch-stmt--danger{ border-left-color:var(--ko); }
.sch-stmt-h{ display:flex; align-items:center; gap:8px; padding:8px 10px; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.sch-stmt-h .sp{ flex:1; }
.sch-stmt-id{ font-weight:700; }
.sch-sql{ margin:0; padding:10px 12px; background:var(--bg); color:var(--text); font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;
  white-space:pre; overflow:auto; max-height:320px; border-bottom:1px solid var(--border); }
.sch-run{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; padding:6px 10px; border-bottom:1px solid var(--border); font-size:12.5px; }
.sch-changes{ display:flex; flex-direction:column; }
.sch-change{ display:flex; gap:10px; padding:8px 10px; border-top:1px solid var(--border); }
.sch-changes > .sch-change:first-child{ border-top:0; }
.sch-change.is-off{ opacity:.72; }
.sch-change-cb{ padding-top:2px; }
.sch-change-body{ min-width:0; flex:1; }
.sch-change-h{ display:flex; gap:6px; align-items:center; flex-wrap:wrap; font-size:13px; font-weight:600; }
.sch-change-h .badge{ font-size:10.5px; padding:2px 7px; }
.sch-fromto{ margin-top:4px; display:flex; flex-direction:column; gap:2px; font-size:12px; }
.sch-fromto > div{ display:flex; gap:8px; min-width:0; }
.sch-fromto .sch-mono{ overflow-wrap:anywhere; }
.sch-k{ flex:none; width:40px; color:var(--soft); font-size:11px; text-transform:uppercase; padding-top:1px; }
.sch-note{ font-size:12px; color:var(--soft); margin-top:3px; overflow-wrap:anywhere; }
.sch-note--ko{ color:var(--ko); font-weight:600; }

/* ---- Barre d'exécution (collée en bas) ---- */
.sch-bar{ position:sticky; bottom:0; z-index:5; display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  background:var(--panel); border:1px solid var(--border); border-radius:var(--radius); padding:10px 14px;
  box-shadow:var(--shadow); margin-top:10px; }
.sch-bar .sp{ flex:1; }

/* ---- Confirmation ---- */
.modal.sch-modal{ width:min(760px,100%); }
.sch-confirm p{ margin:0 0 10px; }
.sch-confirm .sch-alerts{ margin:10px 0; }
.sch-confirm-input{ font-weight:700; letter-spacing:.5px; }
.btn.pri.danger-go{ background:var(--ko); border-color:var(--ko); }

/* ---- Fiche client ---- */
.sch-client .card-h{ flex-wrap:wrap; }
.sch-base .sch-alerts{ margin:12px 0; }

@media (max-width:720px){
  .sch-bar{ border-radius:0; margin-left:-16px; margin-right:-16px; }
  .sch-progress{ flex-basis:100%; }
  .sch-policies{ grid-template-columns:1fr; }
}

/* ---- Pastilles d'état alignées (en-tête de carte) ---- */
.sch-badges{ display:inline-flex; flex-wrap:wrap; gap:6px; align-items:center; }
