/* ============================================================
   admin.css — styles du back office uniquement
   (n'affecte pas le site public ; réutilise vos variables)
   ============================================================ */
.bo-wrap { max-width: 1000px; margin: 0 auto; padding: 40px 24px 90px; }
.bo-head { display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom: 8px; }
.bo-head h1 { font-size: 1.7rem; color: var(--ink-soft); font-family: var(--serif); }
.bo-sub { color: var(--mist); font-size: 14px; margin: 0 0 26px; }
.bo-flash { background: rgba(31,157,85,0.1); border: 1px solid rgba(31,157,85,0.3); color: #1f7a45;
  border-radius: 10px; padding: 12px 16px; font-size: 14px; margin-bottom: 20px; }
.bo-flash.err { background: rgba(192,57,43,0.1); border-color: rgba(192,57,43,0.3); color: #c0392b; }

.bo-card { background:#fff; border:1px solid var(--line); border-radius:14px; padding:26px; margin-bottom:20px; }
.bo-card h2 { font-size:1.1rem; color:var(--ink-soft); margin-bottom:18px; font-family: var(--serif); }
.bo-card label { display:block; font-size:12.5px; font-weight:600; color:var(--ink-soft); margin:14px 0 6px; }
.bo-card input, .bo-card textarea, .bo-card select {
  width:100%; padding:11px 13px; border:1.5px solid var(--line); border-radius:9px;
  font-family:var(--sans); font-size:14.5px; background:var(--paper); color:var(--ink-soft); box-sizing:border-box; }
.bo-card input:focus, .bo-card textarea:focus { outline:none; border-color:var(--accent); background:#fff; }
.bo-card textarea { min-height:80px; resize:vertical; }
.bo-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:600px){ .bo-row{ grid-template-columns:1fr; } }

.btn-bo { display:inline-flex; align-items:center; gap:8px; border:none; cursor:pointer; text-decoration:none;
  background:var(--accent); color:#fff; font-family:var(--sans); font-weight:600; font-size:14px;
  padding:12px 20px; border-radius:9px; }
.btn-bo:hover { background:var(--accent-deep); }
.btn-bo.dark { background:var(--ink-soft); }
.btn-bo.ghost { background:transparent; color:var(--ink-soft); border:1.5px solid var(--line); }
.btn-bo.sm { padding:8px 12px; font-size:13px; }
.btn-bo.danger { background:#fff; color:#c0392b; border:1.5px solid #c0392b; }

.bo-item { display:flex; gap:14px; align-items:center; border:1px solid var(--line);
  border-radius:10px; padding:12px 14px; margin-bottom:10px; background:var(--paper); }
.bo-thumb { width:56px; height:56px; border-radius:8px; background-size:cover; background-position:center;
  background-color:var(--ink-soft); flex-shrink:0; }
.bo-item-info { flex:1; min-width:0; }
.bo-item-info strong { display:block; font-size:14px; color:var(--ink-soft); }
.bo-item-info span { font-size:12px; color:var(--mist); }
.bo-actions { display:flex; gap:6px; flex-wrap:wrap; }

.bo-tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:24px; }
.bo-tab { text-decoration:none; background:#fff; color:var(--ink-soft); font-weight:600; font-size:14px;
  padding:11px 20px; border-radius:30px; box-shadow:0 4px 14px rgba(2,27,64,0.08); }
.bo-tab.on { background:var(--ink-soft); color:#fff; }

.rte-toolbar { display:flex; gap:5px; flex-wrap:wrap; background:var(--paper); border:1.5px solid var(--line);
  border-bottom:none; border-radius:9px 9px 0 0; padding:7px; }
.rte-btn { width:36px; height:32px; border-radius:7px; border:1px solid var(--line); background:#fff;
  color:var(--ink-soft); font-size:13px; font-weight:700; cursor:pointer; }
.rte-btn:hover { background:var(--ink-soft); color:#fff; }
.rte { min-height:150px; max-height:340px; overflow-y:auto; background:#fff; border:1.5px solid var(--line);
  border-radius:0 0 9px 9px; padding:13px; font-size:14.5px; line-height:1.7; color:var(--ink-soft); }
.rte:focus { outline:none; border-color:var(--accent); }
.rte:empty::before { content:attr(data-placeholder); color:#9aa6b8; }

.mod-block { border:1px solid var(--line); border-radius:12px; padding:18px; margin-bottom:16px; background:#fff; }
.mod-block-head { display:flex; align-items:center; gap:10px; margin-bottom:12px; flex-wrap:wrap; }
.mod-block-head input { flex:1; min-width:180px; padding:9px 12px; border:1.5px solid var(--line); border-radius:8px; font-size:14px; }
.sess-row { display:flex; align-items:center; gap:8px; padding:8px 0; border-bottom:1px solid var(--line); }
.sess-row:last-child { border-bottom:none; }
.sess-row input { flex:1; padding:8px 11px; border:1.5px solid var(--line); border-radius:7px; font-size:13.5px; }
.sess-row .chk, .mod-block-head .chk { color:var(--accent); }

.login-screen { max-width:420px; margin:70px auto; background:#fff; border:1px solid var(--line);
  border-radius:16px; padding:34px; box-shadow:0 30px 70px -30px rgba(2,27,64,0.5); }
.login-ico { width:60px; height:60px; margin:0 auto 14px; border-radius:50%; background:var(--ink-soft);
  color:#fff; display:flex; align-items:center; justify-content:center; font-size:24px; }
.login-screen h2 { text-align:center; font-size:1.35rem; color:var(--ink-soft); font-family:var(--serif); }
.login-screen p.hint { text-align:center; color:var(--mist); font-size:13.5px; margin-top:6px; }
.login-screen label { display:block; font-size:12.5px; font-weight:600; color:var(--ink-soft); margin:16px 0 6px; }
.login-screen input { width:100%; padding:11px 13px; border:1.5px solid var(--line); border-radius:9px;
  font-size:14.5px; background:var(--paper); box-sizing:border-box; }
.login-screen input:focus { outline:none; border-color:var(--accent); background:#fff; }
