/* EPUICI — administration */
:root{--navy:#0F2A5C;--blue:#1C4A9E;--green:#2E7D46;--line:#E1E8F2;--soft:#F3F6FB;--ink:#1B2433;--muted:#5A6880;--red:#B3261E}
*{box-sizing:border-box}
body{margin:0;font-family:"Manrope",system-ui,sans-serif;color:var(--ink);background:var(--soft);font-size:13px;line-height:1.45}
a{color:var(--blue)}
.layout{display:flex;min-height:100vh}
.side{width:236px;flex:none;background:var(--navy);color:#C9D6EA;padding:18px 14px;position:sticky;top:0;height:100vh;overflow-y:auto}
.side-brand{display:flex;flex-direction:column;gap:8px;background:#fff;border-radius:12px;padding:12px;text-decoration:none;margin-bottom:14px}
.side-brand img{height:40px;width:auto;align-self:flex-start}.side-brand span{color:var(--navy);font-weight:800;font-size:11.5px;text-transform:uppercase;letter-spacing:.08em}
.side nav a{display:flex;justify-content:space-between;align-items:center;padding:7px 11px;border-radius:8px;color:#DCE6F5;text-decoration:none;font-weight:600;font-size:12px}
.side nav a:hover{background:rgba(255,255,255,.08);color:#fff}
.side nav a.on{background:#fff;color:var(--navy)}
.side-group{margin:16px 12px 4px;font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#8FA6C9}
.badge{background:#3FB866;color:#08301A;border-radius:999px;font-size:10.5px;font-weight:800;padding:1px 8px}
.content{flex:1;min-width:0;display:flex;flex-direction:column}
.top{display:flex;align-items:center;gap:16px;background:#fff;border-bottom:1px solid var(--line);padding:10px 22px;position:sticky;top:0;z-index:5}
.top h1{margin:0;font-size:17.5px;color:var(--navy);flex:1}
.top-r{display:flex;gap:18px;flex-wrap:wrap;font-weight:600;font-size:12px}
.top-r a{text-decoration:none}
.menu-btn{display:none;min-height:34px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit;font-weight:700;cursor:pointer}
.main{padding:20px 22px;max-width:1300px;width:100%}
.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:16px}
.panel h2{margin:0 0 16px;font-size:15.5px;color:var(--navy)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:22px}
.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px;text-decoration:none;display:flex;flex-direction:column;gap:4px}
.stat:hover{border-color:var(--blue)}
.stat-n{font-size:26px;font-weight:800;color:var(--navy)}.stat-l{color:var(--muted);font-weight:600;font-size:12px}
.mini-cards{display:flex;flex-wrap:wrap;gap:10px}
.mini-cards a{padding:10px 16px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink)}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:22px}
.todo{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-weight:600}
.muted{color:var(--muted)}.nowrap{white-space:nowrap}.right{text-align:right}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:0 16px;border-radius:10px;border:1px solid #B8C6DC;background:#fff;color:var(--navy);font:inherit;font-weight:700;text-decoration:none;cursor:pointer;font-size:12px}
.btn:hover{border-color:var(--navy)}
.btn-primary{background:var(--green);border-color:var(--green);color:#fff}.btn-primary:hover{background:#246638;color:#fff}
.btn-danger{color:var(--red);border-color:#F2B8B5}.btn-danger:hover{background:var(--red);color:#fff;border-color:var(--red)}
.btn-sm{min-height:29px;padding:0 12px;font-size:11.5px}
.alert{padding:12px 16px;border-radius:10px;margin-bottom:14px;font-weight:600}
.alert-success{background:#E7F3EB;color:#1D4A2C}.alert-error{background:#FCE8E6;color:#8C1D18}.alert-info{background:#EAF0FA;color:var(--navy)}
.toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:8px}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.toolbar-r{display:flex;gap:8px;flex-wrap:wrap}
input,select,textarea{font:inherit;color:var(--ink);border:1px solid #B8C6DC;border-radius:10px;min-height:36px;padding:0 12px;background:#fff;max-width:100%}
textarea{padding:10px 12px;width:100%;resize:vertical}
.filters input[type=search]{min-width:240px}
.table-wrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse}
.tbl th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:9px 12px;border-bottom:1px solid var(--line);background:#FAFCFE}
.tbl td{padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:none}
.tbl tr.unread td{background:#F4FAF6;font-weight:700}
.tbl-list td a{text-decoration:none;font-weight:700}
.thumb{width:64px;height:44px;object-fit:cover;border-radius:6px;display:block;background:var(--soft)}
.thumb-empty{display:block}
.pill{display:inline-block;padding:3px 10px;border-radius:999px;background:#EEF2F7;color:var(--muted);font-size:10.5px;font-weight:800}
.pill-ok,.pill-paye,.pill-publie{background:#E7F3EB;color:#1D5C33}
.pill-en_attente{background:#FFF4D6;color:#7A5300}
.pill-echec,.pill-rejete{background:#FCE8E6;color:#8C1D18}
.pill-admin{background:#EAF0FA;color:var(--navy)}
.inline{display:inline}
.pager{display:flex;gap:6px;margin-top:16px;flex-wrap:wrap}
.pager a{min-width:38px;height:38px;border:1px solid var(--line);border-radius:9px;display:flex;align-items:center;justify-content:center;background:#fff;text-decoration:none;font-weight:700}
.pager a.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.empty{text-align:center;color:var(--muted)}
.form .field{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}
.form label,.form .label{font-weight:700;color:var(--navy);font-size:12px}
.form input[type=text],.form input[type=email],.form input[type=url],.form input[type=date],.form input[type=number],.form input[type=password],.form select{width:100%;max-width:720px}
.field-date input,.field-number input{max-width:220px!important}
.info-val{padding:10px 14px;background:var(--soft);border-radius:10px;white-space:normal}
.check{display:flex!important;align-items:center;gap:10px;font-weight:600!important;cursor:pointer}
.check input{width:18px;height:18px;min-height:0}
.check.small{font-size:11.5px}
.req{color:var(--red)}
.current-file{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:10px;background:var(--soft);border-radius:10px}
.preview{max-height:110px;max-width:220px;border-radius:8px;display:block}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.sticky-actions{position:sticky;bottom:0;background:var(--soft);padding:14px 0}
.danger-zone{margin-top:-6px;margin-bottom:22px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:4px 24px}
.grid2 .wide{grid-column:1/-1}
.ql-container{min-height:260px;font-size:14px;font-family:inherit}
.ql-toolbar,.ql-container{background:#fff;border-color:#B8C6DC!important}
.ql-toolbar{border-radius:10px 10px 0 0}.ql-container{border-radius:0 0 10px 10px}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.photo-item{border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px}
.photo-item.is-cover{border-color:var(--green);box-shadow:0 0 0 2px #C5E3CF}
.photo-item img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px}
.photo-item label{display:flex;flex-direction:column;gap:4px;font-size:10.5px;font-weight:700;color:var(--muted)}
.photo-item input{min-height:36px;width:100%}
.photo-actions{display:flex;gap:6px;flex-wrap:wrap}
.login-body{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--navy)}
.login-box{background:#fff;border-radius:18px;padding:32px;width:100%;max-width:420px}
.login-box h1{font-size:19px;color:var(--navy)}
.stack{display:flex;flex-direction:column;gap:14px}
.stack label{display:flex;flex-direction:column;gap:6px;font-weight:700;color:var(--navy);font-size:12px}
@media (max-width:900px){
  .side{position:fixed;left:-280px;z-index:20;transition:left .2s;box-shadow:0 0 40px rgba(0,0,0,.3)}
  .side.open{left:0}
  .menu-btn{display:inline-flex;align-items:center}
  .main{padding:18px}.top{padding:12px 18px}
  .top-r a:nth-child(2){display:none}
}
/* Graphiques simples, tuiles et blocs des espaces École / Églises */
.bars{display:flex;flex-direction:column;gap:8px}
.bar-row{display:grid;grid-template-columns:110px 1fr 110px;gap:10px;align-items:center;font-size:11.5px}
.bar-l{color:var(--muted);font-weight:700}
.bar-t{height:12px;background:#EEF2F7;border-radius:999px;overflow:hidden;display:block}
.bar-t span{display:block;height:100%;border-radius:999px}
.bar-v{text-align:right;font-weight:800;color:var(--navy)}
.kpi-sub{font-size:10.5px;color:var(--muted)}
.list-plain{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.list-plain li{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:10px}
.list-plain li:last-child{border-bottom:none}
.right-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.qcm-q{border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:14px;background:#fff}
.qcm-q h3{margin:0 0 10px;font-size:14px;color:var(--navy)}
.qcm-opt{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:8px}
.qcm-opt.ok{background:#E7F3EB}.qcm-opt.ko{background:#FCE8E6}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:22px}
.tag-soft{display:inline-block;padding:2px 8px;border-radius:6px;background:#EEF2F7;font-size:10.5px;font-weight:700;color:var(--muted)}
.pill-transmis,.pill-rendu{background:#EAF0FA;color:var(--navy)}
.pill-valide,.pill-corrige,.pill-actif{background:#E7F3EB;color:#1D5C33}
.pill-brouillon,.pill-a_corriger,.pill-suspendu,.pill-refuse{background:#FCE8E6;color:#8C1D18}
.pill-recette{background:#E7F3EB;color:#1D5C33}.pill-depense{background:#FCE8E6;color:#8C1D18}
@media print{.side,.top,.toolbar,.actions,.btn{display:none!important}.main{padding:0}.panel{border:none}}
/* Actions de ligne : Modifier / Activer-Désactiver / Dupliquer / Supprimer */
.tbl-list td.right .btn,.tbl-list td.right form.inline{margin-left:3px}
.btn-warn{color:#8A5A00;border-color:#E9C46A;background:#FFF8E6}.btn-warn:hover{background:#E9A800;border-color:#E9A800;color:#fff}
.btn-ok{color:var(--green);border-color:#A9D8B8;background:#F1F9F3}.btn-ok:hover{background:var(--green);border-color:var(--green);color:#fff}
/* Effets doux au survol */
.btn,.side nav a,.stat,.top-r a,a{transition:background-color .25s ease,color .25s ease,border-color .25s ease,box-shadow .25s ease,transform .25s ease}
.btn:hover{box-shadow:0 2px 8px rgba(15,42,92,.12)}
.stat:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(15,42,92,.08)}
/* Agenda */
.ag-legend{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.ag-cal{width:100%;min-width:760px;border-collapse:collapse;table-layout:fixed}
.ag-cal th{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px;border-bottom:1px solid var(--line);background:#FAFCFE;text-align:left}
.ag-cal td{vertical-align:top;height:104px;border:1px solid var(--line);padding:5px;overflow:hidden}
.ag-cal td.ag-out{background:#FAFBFD}
.ag-cal td.ag-today{background:#F2F7FF;box-shadow:inset 0 0 0 2px var(--blue)}
.ag-n{display:block;font-weight:800;color:var(--navy);font-size:12px;margin-bottom:3px}
.ag-i{display:block;font-size:10.5px;line-height:1.3;padding:2px 5px;border-radius:5px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;border-left:3px solid}
.ag-legend .ag-i{display:inline-block;font-size:11px;margin:0}
.ag-i.ev{background:#E8F0FB;border-color:#1C4A9E;color:#123A7E}
.ag-i.act{background:#EEF7F1;border-color:#2E7D46;color:#1D5C33}
.ag-i.culte{background:#F3F0FA;border-color:#6A4FB3;color:#4B348C}
.ag-i.prevu{background:#FFF6E3;border-color:#D99A1E;color:#7A5300}
.ag-i.acte{background:#F1F3F6;border-color:#6B7A90;color:#3A4658}
.ag-i.todo{background:#FCECEB;border-color:#B3261E;color:#8C1D18}
.ag-i.anniv{background:#FDEFF6;border-color:#C2408A;color:#8E2A63}
a.ag-i:hover{filter:brightness(.96);text-decoration:underline}
@media print{.ag-cal{min-width:0}.ag-cal td{height:80px}.ag-legend{display:none}}
