/* ===== BASE.CSS — Charte commune Maquet (P1.1) ===== */
/* Variables CSS unifiées : une seule palette pour toute l'application */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  /* Couleurs — palette Hub (référence) */
  --bg:#2d2b55;
  --bg-deep:#1e1c3a;
  --surface:#292541;
  --surface2:#342f5a;
  --surface3:#3d3870;
  --text:#ececf1;
  --text1:#ececf1;
  --text2:#bcb9d4;
  --text3:#9896b5;
  --accent:#da7756;
  --accent2:#e8956a;
  --accent-bg:rgba(218,119,86,.12);
  --accent-glow:rgba(218,119,86,.3);
  --border:#3d3a5c;
  --border2:#4a4770;
  --danger:#ef4444;
  --success:#22c55e;
  --warning:#f59e0b;
  --radius:16px;
  --radius-sm:10px;
  --radius-xs:6px;
  --shadow:0 4px 24px rgba(0,0,0,.4);
  --transition:.2s ease;
  /* Compatibilité avec couleurs cockpit/admin existantes */
  --c-green:#22c55e;
  --c-orange:#f59e0b;
  --c-red:#ef4444;
}

body.light{
  --bg:#f7f7f8;
  --bg-deep:#ededf0;
  --surface:#ffffff;
  --surface2:#f0f0f5;
  --surface3:#e8e8f0;
  --text:#1a1a2e;
  --text1:#1a1a2e;
  --text2:#444460;
  --text3:#666680;
  --accent:#c4623e;
  --accent2:#da7756;
  --accent-bg:rgba(196,98,62,.08);
  --accent-glow:rgba(196,98,62,.2);
  --border:#e0e0ea;
  --border2:#d0d0dd;
  --shadow:0 4px 24px rgba(0,0,0,.08);
  --c-green:#16a34a;
  --c-orange:#d97706;
  --c-red:#dc2626;
}

/* Base */
html,body{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  background:var(--bg);color:var(--text);min-height:100vh;
}
a{color:var(--accent2);text-decoration:none}
a:hover{color:var(--accent)}

/* Scrollbar */
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:10px}

/* ===== LOGIN GATE ===== */
#login-gate{
  position:fixed;top:0;left:0;width:100%;height:100%;
  background:var(--bg-deep);display:flex;flex-direction:column;
  align-items:center;justify-content:center;z-index:10000;gap:12px;
}
#login-gate img{width:64px;height:64px;border-radius:50%;border:3px solid var(--accent);box-shadow:0 0 20px var(--accent-glow)}
#login-gate h2{font-family:Georgia,serif;color:var(--accent);font-size:1.3em}
#login-gate p{color:var(--text3);font-size:.85em}
#login-gate input{
  background:var(--surface);color:var(--text);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:12px 16px;font-size:1em;width:260px;
  text-align:center;outline:none;transition:border-color var(--transition);
}
#login-gate input:focus{border-color:var(--accent)}
#login-gate button{
  background:var(--accent);color:#fff;border:none;
  border-radius:var(--radius-sm);padding:12px 32px;font-size:1em;cursor:pointer;
  font-family:Georgia,serif;transition:background var(--transition);
}
#login-gate button:hover{background:var(--accent2)}
#login-gate .login-error{color:var(--danger);font-size:.85em;display:none}

/* ===== APP NAV (P1.2 — barre de navigation commune) ===== */
.app-nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 20px;background:var(--bg-deep);
  border-bottom:1px solid var(--border);
  flex-shrink:0;position:sticky;top:0;z-index:50;
}
.app-nav-brand{
  display:flex;align-items:center;gap:8px;
  font-family:Georgia,serif;color:var(--accent);font-size:1em;font-weight:600;
  text-decoration:none;
}
.app-nav-brand img{width:28px;height:28px;border-radius:50%}
.app-nav-links{display:flex;align-items:center;gap:4px}
.app-nav-links a{
  color:var(--text3);font-size:.85em;padding:6px 12px;
  border-radius:var(--radius-xs);transition:all var(--transition);
  text-decoration:none;
}
.app-nav-links a:hover,.app-nav-links a.active{
  color:var(--accent);background:var(--accent-bg);
}
.app-nav-actions{display:flex;align-items:center;gap:4px}
.app-nav-btn{
  background:none;border:1px solid var(--border);color:var(--text3);
  border-radius:var(--radius-xs);padding:5px 10px;font-size:.82em;cursor:pointer;
  transition:all var(--transition);
}
.app-nav-btn:hover{border-color:var(--accent);color:var(--accent)}

/* ===== CARD / SECTION ===== */
.card,.section{
  background:var(--surface);border-radius:var(--radius-sm);
  padding:16px;margin-bottom:16px;border:1px solid var(--border);
}
.card h2,.card h3,.section h2,.section h3{
  font-family:Georgia,serif;color:var(--accent);
  font-size:.95em;margin-bottom:10px;
}

/* ===== STAT GRID ===== */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.stat{background:var(--surface2);border-radius:var(--radius-xs);padding:12px;text-align:center;border:1px solid var(--border)}
.stat .val{font-size:1.6em;font-weight:bold;color:var(--text);font-family:Georgia,serif}
.stat .lbl{font-size:.75em;color:var(--text3);margin-top:2px}

/* ===== SERVICE DOTS ===== */
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:6px}
.dot.green{background:var(--c-green)}
.dot.red{background:var(--c-red)}
.dot.grey{background:#666}
.dot.orange{background:var(--c-orange)}

/* ===== ROWS ===== */
.svc-row,.row{
  display:flex;justify-content:space-between;align-items:center;
  padding:8px 0;border-bottom:1px solid var(--border);
}
.svc-row:last-child,.row:last-child{border-bottom:none}
.label{font-size:.9em;color:var(--text)}
.label small{color:var(--text3);display:block;font-size:.75em}

/* ===== PIPELINE BOX ===== */
.pipeline-box{
  background:var(--surface2);border-radius:var(--radius-xs);
  padding:14px;margin-bottom:10px;border:1px solid var(--border);
}
.pipeline-box .title{font-weight:bold;color:var(--text);margin-bottom:6px}
.pipeline-box .step{color:var(--c-green);font-size:.9em}
.pipeline-box .score{color:var(--accent);font-size:.85em;margin-top:4px}
.pipeline-box .notes{color:var(--text3);font-size:.8em;margin-top:4px}

/* ===== ENTITY LIST (Bible) ===== */
.entity,.entity-item{
  background:var(--surface2);border-radius:var(--radius-xs);
  padding:12px;margin-bottom:8px;cursor:pointer;
  transition:background var(--transition);border:1px solid var(--border);
}
.entity:hover,.entity-item:hover{background:var(--surface3)}
.entity .name,.entity-name{font-weight:bold;color:var(--text)}
.entity .type-badge,.entity-type{
  display:inline-block;background:var(--accent);color:#fff;
  padding:2px 8px;border-radius:4px;font-size:.7em;margin-left:8px;
}
.entity .extract,.entity-extract{color:var(--text3);font-size:.85em;margin-top:4px}
.entity-detail{
  background:var(--surface2);border-radius:var(--radius-xs);
  padding:16px;white-space:pre-wrap;font-size:.85em;line-height:1.5;
  max-height:600px;overflow-y:auto;border:1px solid var(--border);
}
.entity-list{max-height:500px;overflow-y:auto}

/* ===== BIBLE CONTROLS ===== */
.bible-controls{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.bible-controls select,.bible-controls input{
  background:var(--surface2);color:var(--text);border:1px solid var(--border);
  border-radius:var(--radius-xs);padding:8px 12px;font-size:.9em;
  transition:border-color var(--transition);
}
.bible-controls input{flex:1;min-width:150px}
.bible-controls input:focus,.bible-controls select:focus{
  border-color:var(--accent);outline:none;
}
.bible-controls button{
  background:var(--accent);color:#fff;border:none;
  border-radius:var(--radius-xs);padding:8px 14px;cursor:pointer;
  font-size:.9em;transition:background var(--transition);
}
.bible-controls button:hover{background:var(--accent2)}

/* ===== RAG FORM ===== */
.rag-form{display:flex;gap:8px;margin-bottom:16px}
.rag-form input{
  flex:1;background:var(--surface2);color:var(--text);
  border:1px solid var(--border);border-radius:var(--radius-xs);
  padding:10px 14px;font-size:.95em;outline:none;
  transition:border-color var(--transition);
}
.rag-form input:focus{border-color:var(--accent)}
.rag-form button{
  background:var(--accent);color:#fff;border:none;
  border-radius:var(--radius-xs);padding:10px 18px;cursor:pointer;
  font-size:.95em;transition:background var(--transition);
}
.rag-form button:hover{background:var(--accent2)}
.rag-result{
  background:var(--surface2);border-radius:var(--radius-xs);
  padding:14px;margin-bottom:10px;border:1px solid var(--border);
}
.rag-result .source{color:var(--accent);font-size:.8em;margin-bottom:4px}
.rag-result .snippet{font-size:.85em;line-height:1.5;white-space:pre-wrap;color:var(--text)}
.rag-result .meta{color:var(--text3);font-size:.75em;margin-top:6px}

/* ===== MISC ===== */
.loading{text-align:center;padding:40px;color:var(--text3)}
.error{color:var(--danger);padding:10px;text-align:center}
.backlog-item{padding:6px 0;border-bottom:1px solid var(--border);font-size:.9em;color:var(--text2)}
.backlog-item:last-child{border-bottom:none}
.backlog-item::before{content:"▸ ";color:var(--accent)}

/* DEH badges */
.deh-score{display:inline-block;padding:2px 10px;border-radius:12px;font-weight:bold;font-size:1.1em}
.deh-high{background:var(--c-green);color:#fff}
.deh-mid{background:var(--c-orange);color:#fff}
.deh-low{background:var(--c-red);color:#fff}

/* Crons */
.cron-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}
.cron-row:last-child{border-bottom:none}
.cron-info{flex:1}
.cron-name{font-weight:bold;color:var(--text);font-size:.9em}
.cron-schedule{color:var(--text3);font-size:.8em}
.cron-last{color:var(--text3);font-size:.8em;text-align:right}

/* Theme toggle button (standalone pages) */
.theme-toggle{
  position:fixed;top:10px;right:14px;z-index:99999;
  background:var(--accent);border:none;border-radius:50%;
  width:36px;height:36px;font-size:1.2em;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow);transition:background var(--transition);
  color:#fff;
}
.theme-toggle:hover{background:var(--accent2)}

/* Select */
select{
  background:var(--surface2);color:var(--text);
  border:1px solid var(--border);border-radius:var(--radius-xs);
  padding:6px 12px;font-size:.9em;
}
