/* Ma Petite MAM — feuille de style principale */
:root{
  --mpm-primary:#2f7d74;
  --mpm-accent:#e2725b;
  --mpm-bg:#f7f5f0;
  --mpm-surface:#ffffff;
  --mpm-ink:#22302d;
  --mpm-muted:#6b7774;
  --mpm-line:#e8e4da;
  --mpm-soft:color-mix(in srgb, var(--mpm-primary) 10%, white);
  --mpm-soft-2:color-mix(in srgb, var(--mpm-primary) 18%, white);
  --mpm-sidebar-w:248px;
  --mpm-top-h:60px;
  --bs-body-font-family:'Nunito Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --bs-body-color:var(--mpm-ink);
  --bs-border-color:var(--mpm-line);
  --bs-link-color-rgb:47,125,116;
}
html.big-text{ font-size:118%; }
body{ background:var(--mpm-bg); color:var(--mpm-ink); -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4,h5,.mpm-brand,.page-title{ font-family:'Nunito', var(--bs-body-font-family); }
a{ color:var(--mpm-primary); }
::selection{ background:var(--mpm-soft-2); }

/* --- Barre haute ------------------------------------------------------- */
.mpm-top{
  position:sticky; top:0; z-index:1030; height:var(--mpm-top-h);
  display:flex; align-items:center; gap:.75rem; padding:0 1rem;
  background:rgba(255,255,255,.92); backdrop-filter:saturate(1.4) blur(8px);
  border-bottom:1px solid var(--mpm-line);
}
.mpm-brand{ display:flex; align-items:center; gap:.6rem; font-weight:800; font-size:1.08rem; color:var(--mpm-ink); text-decoration:none; min-width:0; }
.mpm-logo{ width:36px; height:36px; border-radius:10px; object-fit:cover; flex:0 0 36px; }
.mpm-logo-default{ display:grid; place-items:center; background:var(--mpm-primary); color:#fff; font-size:1.1rem; }
.mpm-icon-btn{ display:grid; place-items:center; width:40px; height:40px; border-radius:12px; color:var(--mpm-ink); font-size:1.2rem; }
.mpm-icon-btn:hover{ background:var(--mpm-soft); color:var(--mpm-primary); }
.mpm-user-btn{ display:flex; align-items:center; gap:.5rem; border:0; background:none; padding:.25rem .4rem; border-radius:12px; }
.mpm-user-btn:hover{ background:var(--mpm-soft); }
.mpm-user-initials{ width:34px; height:34px; border-radius:50%; display:grid; place-items:center; background:var(--mpm-soft-2); color:var(--mpm-primary); font-weight:800; font-size:.85rem; }
.mpm-dot-badge{ position:absolute; top:-2px; right:-6px; min-width:18px; height:18px; padding:0 5px; border-radius:9px; background:var(--mpm-accent); color:#fff; font-size:.68rem; font-weight:700; display:grid; place-items:center; line-height:1; font-style:normal; }
.mpm-icon-btn .mpm-dot-badge{ top:4px; right:2px; }

/* --- Structure --------------------------------------------------------- */
.mpm-shell{ display:flex; min-height:calc(100vh - var(--mpm-top-h)); }
.mpm-sidebar{
  width:var(--mpm-sidebar-w); flex:0 0 var(--mpm-sidebar-w); flex-direction:column;
  position:sticky; top:var(--mpm-top-h); height:calc(100vh - var(--mpm-top-h)); overflow-y:auto;
  padding:.75rem .7rem 1rem; border-right:1px solid var(--mpm-line); background:var(--mpm-surface);
}
.mpm-nav-group{ font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--mpm-muted); padding:.9rem .75rem .35rem; }
.mpm-link{ display:flex; align-items:center; gap:.7rem; padding:.55rem .75rem; margin:1px 0; border-radius:10px; color:#3d4a47; text-decoration:none; font-weight:600; font-size:.94rem; }
.mpm-link i{ font-size:1.08rem; width:1.3rem; text-align:center; color:var(--mpm-muted); }
.mpm-link:hover{ background:var(--mpm-soft); color:var(--mpm-primary); }
.mpm-link:hover i{ color:var(--mpm-primary); }
.mpm-link.active{ background:var(--mpm-primary); color:#fff; }
.mpm-link.active i{ color:#fff; }
.mpm-link-help{ border-top:1px solid var(--mpm-line); border-radius:0; padding-top:.8rem; margin-top:.5rem; }
.mpm-main{ flex:1 1 auto; min-width:0; padding:1.5rem 1.75rem 2.5rem; max-width:1320px; }
@media (max-width:991.98px){
  .mpm-main{ padding:1rem 1rem calc(84px + env(safe-area-inset-bottom)); }
  .mpm-top{ padding:0 .75rem; }
}

/* --- Barre d'onglets mobile -------------------------------------------- */
.mpm-tabbar{
  position:fixed; bottom:0; left:0; right:0; z-index:1030; display:flex;
  background:rgba(255,255,255,.97); backdrop-filter:blur(8px); border-top:1px solid var(--mpm-line);
  padding:.35rem .25rem calc(.35rem + env(safe-area-inset-bottom));
}
.mpm-tabbar a{ flex:1; display:flex; flex-direction:column; align-items:center; gap:2px; color:var(--mpm-muted); text-decoration:none; padding:.2rem 0; border-radius:12px; }
.mpm-tabbar a i{ font-size:1.35rem; }
.mpm-tabbar a small{ font-size:.68rem; font-weight:700; }
.mpm-tabbar a.active{ color:var(--mpm-primary); }
.mpm-tabbar a.active i{ background:var(--mpm-soft); border-radius:12px; padding:0 .8rem; }
.mpm-more{ height:auto !important; max-height:85vh; border-radius:20px 20px 0 0; }
.mpm-more-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem; }
.mpm-more-grid a{ position:relative; display:flex; flex-direction:column; align-items:center; gap:.3rem; padding:.8rem .3rem; border-radius:14px; background:var(--mpm-bg); color:var(--mpm-ink); text-decoration:none; font-size:.8rem; font-weight:600; text-align:center; }
.mpm-more-grid a i{ font-size:1.4rem; color:var(--mpm-primary); }
.mpm-more-grid a.active{ background:var(--mpm-soft-2); }
.mpm-more-grid .mpm-dot-badge{ top:6px; right:10px; }

/* --- Composants -------------------------------------------------------- */
.page-head{ display:flex; flex-wrap:wrap; align-items:center; gap:.75rem 1rem; margin-bottom:1.25rem; }
.page-title{ font-size:1.55rem; font-weight:800; margin:0; letter-spacing:-.01em; }
.page-sub{ color:var(--mpm-muted); margin:.15rem 0 0; font-size:.95rem; }
.page-actions{ margin-left:auto; display:flex; flex-wrap:wrap; gap:.5rem; }
@media (max-width:575.98px){ .page-title{ font-size:1.3rem; } .page-actions{ margin-left:0; width:100%; } .page-actions .btn{ flex:1; } }

.card{ border:1px solid var(--mpm-line); border-radius:16px; box-shadow:0 1px 2px rgba(34,48,45,.04); }
.card-header{ background:transparent; border-bottom:1px solid var(--mpm-line); padding:.9rem 1.1rem; font-weight:700; font-family:'Nunito',sans-serif; }
.card-body{ padding:1.1rem; }
.card-title-sm{ font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; color:var(--mpm-muted); font-weight:700; margin-bottom:.6rem; }
.stat{ padding:1rem 1.1rem; }
.stat .v{ font-family:'Nunito',sans-serif; font-size:1.75rem; font-weight:800; line-height:1.1; }
.stat .l{ color:var(--mpm-muted); font-size:.82rem; font-weight:600; }
.stat .ic{ width:42px; height:42px; border-radius:12px; display:grid; place-items:center; background:var(--mpm-soft); color:var(--mpm-primary); font-size:1.25rem; }

.btn{ border-radius:10px; font-weight:600; }
.btn-lg{ border-radius:12px; }
.btn-primary{ --bs-btn-bg:var(--mpm-primary); --bs-btn-border-color:var(--mpm-primary); --bs-btn-hover-bg:color-mix(in srgb,var(--mpm-primary) 85%, black); --bs-btn-hover-border-color:color-mix(in srgb,var(--mpm-primary) 85%, black); --bs-btn-active-bg:color-mix(in srgb,var(--mpm-primary) 78%, black); --bs-btn-disabled-bg:var(--mpm-primary); --bs-btn-disabled-border-color:var(--mpm-primary); }
.btn-outline-primary{ --bs-btn-color:var(--mpm-primary); --bs-btn-border-color:var(--mpm-primary); --bs-btn-hover-bg:var(--mpm-primary); --bs-btn-hover-border-color:var(--mpm-primary); --bs-btn-active-bg:var(--mpm-primary); --bs-btn-active-border-color:var(--mpm-primary); }
.btn-soft{ background:var(--mpm-soft); color:var(--mpm-primary); border:0; }
.btn-soft:hover{ background:var(--mpm-soft-2); color:var(--mpm-primary); }
.btn-accent{ background:var(--mpm-accent); border-color:var(--mpm-accent); color:#fff; }
.btn-accent:hover{ filter:brightness(.93); color:#fff; }
.form-control,.form-select{ border-radius:10px; border-color:#ddd8cc; padding:.55rem .8rem; }
.form-control:focus,.form-select:focus,.form-check-input:focus{ border-color:var(--mpm-primary); box-shadow:0 0 0 .2rem var(--mpm-soft-2); }
.form-check-input:checked{ background-color:var(--mpm-primary); border-color:var(--mpm-primary); }
.form-label{ font-weight:600; font-size:.9rem; margin-bottom:.3rem; }
.form-text{ color:var(--mpm-muted); }
.nav-pills .nav-link{ border-radius:10px; color:#3d4a47; font-weight:600; }
.nav-pills .nav-link.active{ background:var(--mpm-primary); }
.nav-scroll{ flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; gap:.25rem; padding-bottom:2px; }
.nav-scroll::-webkit-scrollbar{ display:none; }
.nav-scroll .nav-link{ white-space:nowrap; }

.table{ --bs-table-bg:transparent; margin:0; }
.table > :not(caption) > * > *{ padding:.7rem .9rem; border-color:var(--mpm-line); }
.table thead th{ font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--mpm-muted); font-weight:700; background:#fbfaf7; }
.table-hover tbody tr:hover{ --bs-table-hover-bg:var(--mpm-soft); }
.table-card{ overflow:hidden; }
.table-card .table-responsive{ border-radius:16px; }

.badge-soft{ background:var(--mpm-soft); color:var(--mpm-primary); font-weight:700; }
.badge{ font-weight:700; border-radius:7px; }
.chip{ display:inline-flex; align-items:center; gap:.3rem; padding:.2rem .6rem; border-radius:20px; font-size:.78rem; font-weight:700; background:#f0ede5; color:#5b5446; }
.chip-danger{ background:#fdecea; color:#b3261e; }
.chip-warn{ background:#fff4dc; color:#8a5a00; }
.chip-ok{ background:#e5f4ec; color:#1e6b43; }
.chip-info{ background:var(--mpm-soft); color:var(--mpm-primary); }

/* Avatars */
.av{ display:inline-grid; place-items:center; border-radius:50%; object-fit:cover; font-weight:800; flex:0 0 auto; font-family:'Nunito',sans-serif; }
.av-sm{ width:32px; height:32px; font-size:.75rem; }
.av-md{ width:44px; height:44px; font-size:.95rem; }
.av-lg{ width:72px; height:72px; font-size:1.4rem; }
.av-xl{ width:104px; height:104px; font-size:2rem; }

/* Liste d'éléments */
.list-row{ display:flex; align-items:center; gap:.85rem; padding:.8rem 1rem; border-bottom:1px solid var(--mpm-line); color:inherit; text-decoration:none; }
.list-row:last-child{ border-bottom:0; }
a.list-row:hover{ background:var(--mpm-soft); }
.list-row .meta{ color:var(--mpm-muted); font-size:.85rem; }

.empty{ text-align:center; padding:2.5rem 1rem; color:var(--mpm-muted); }
.empty i{ font-size:2.4rem; display:block; margin-bottom:.5rem; color:#c9c2b2; }

/* --- Aujourd'hui (équipe) --------------------------------------------- */
.kid-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1rem; }
@media (max-width:575.98px){ .kid-grid{ grid-template-columns:1fr; gap:.75rem; } }
.kid-card{ background:#fff; border:1px solid var(--mpm-line); border-radius:18px; padding:1rem; display:flex; flex-direction:column; gap:.75rem; }
.kid-card.is-here{ border-color:color-mix(in srgb,var(--mpm-primary) 40%, white); box-shadow:0 0 0 3px var(--mpm-soft); }
.kid-card.is-gone{ opacity:.72; }
.kid-head{ display:flex; align-items:center; gap:.75rem; }
.kid-name{ font-family:'Nunito',sans-serif; font-weight:800; font-size:1.08rem; line-height:1.15; color:inherit; text-decoration:none; }
.kid-state{ font-size:.82rem; color:var(--mpm-muted); }
.quick{ display:grid; grid-template-columns:repeat(4,1fr); gap:.4rem; }
.quick button{ border:0; background:var(--mpm-bg); border-radius:12px; padding:.5rem .2rem .4rem; display:flex; flex-direction:column; align-items:center; gap:.1rem; font-size:.72rem; font-weight:700; color:#4b5754; transition:transform .08s, background .15s; }
.quick button .e{ font-size:1.3rem; line-height:1.2; }
.quick button:hover{ background:var(--mpm-soft-2); }
.quick button:active{ transform:scale(.95); }
.quick button.on{ background:#fff1d6; }
.kid-last{ font-size:.82rem; color:var(--mpm-muted); border-top:1px dashed var(--mpm-line); padding-top:.55rem; }
.alert-allergy{ background:#fdecea; color:#8c1d18; border-radius:10px; padding:.35rem .6rem; font-size:.8rem; font-weight:700; }

/* Timeline (journée) */
.timeline{ position:relative; padding-left:1.6rem; }
.timeline::before{ content:''; position:absolute; left:.6rem; top:.4rem; bottom:.4rem; width:2px; background:var(--mpm-line); }
.tl-item{ position:relative; padding:.15rem 0 1rem; }
.tl-item .tl-dot{ position:absolute; left:-1.6rem; top:.05rem; width:1.25rem; height:1.25rem; border-radius:50%; background:#fff; border:2px solid var(--mpm-line); display:grid; place-items:center; font-size:.7rem; }
.tl-time{ font-weight:800; font-size:.82rem; color:var(--mpm-primary); }
.tl-title{ font-weight:700; }
.tl-body{ color:#46524f; font-size:.93rem; white-space:pre-line; }
.tl-photo{ max-width:240px; border-radius:12px; margin-top:.35rem; display:block; }
.summary-tiles{ display:grid; grid-template-columns:repeat(4,1fr); gap:.6rem; }
@media (max-width:575.98px){ .summary-tiles{ grid-template-columns:repeat(2,1fr); } }
.summary-tiles > div{ background:var(--mpm-bg); border-radius:14px; padding:.75rem; text-align:center; }
.summary-tiles .e{ font-size:1.4rem; }
.summary-tiles b{ display:block; font-family:'Nunito',sans-serif; font-size:1.05rem; }
.summary-tiles small{ color:var(--mpm-muted); font-weight:600; }

/* Planning */
.plan-table th,.plan-table td{ text-align:center; vertical-align:middle; white-space:nowrap; }
.plan-table td:first-child,.plan-table th:first-child{ text-align:left; position:sticky; left:0; background:#fff; z-index:1; }
.plan-cell{ display:block; border-radius:9px; padding:.3rem .4rem; font-size:.78rem; font-weight:700; min-width:92px; cursor:pointer; border:1px solid transparent; }
.plan-cell.expected{ background:#f2efe7; color:#6a6352; }
.plan-cell.present{ background:#e5f4ec; color:#1e6b43; }
.plan-cell.absent{ background:#fff4dc; color:#8a5a00; }
.plan-cell.off{ background:#eef0f7; color:#4a5372; }
.plan-cell.none{ color:#c9c2b2; font-weight:400; }
.plan-cell:hover{ border-color:var(--mpm-primary); }
.cap-bar{ height:6px; border-radius:3px; background:#eee9df; overflow:hidden; }
.cap-bar > span{ display:block; height:100%; background:var(--mpm-primary); }
.cap-bar.full > span{ background:var(--mpm-accent); }

/* Messages */
.chat{ display:flex; flex-direction:column; gap:.55rem; padding:1rem; max-height:62vh; overflow-y:auto; background:#fbfaf6; }
@media (max-width:991.98px){ .chat{ max-height:none; } }
.bubble{ max-width:78%; padding:.6rem .85rem; border-radius:16px; background:#fff; border:1px solid var(--mpm-line); white-space:pre-line; word-wrap:break-word; }
.bubble.me{ align-self:flex-end; background:var(--mpm-primary); color:#fff; border-color:var(--mpm-primary); border-bottom-right-radius:5px; }
.bubble.them{ align-self:flex-start; border-bottom-left-radius:5px; }
.bubble .who{ font-size:.74rem; font-weight:700; opacity:.8; display:block; margin-bottom:.1rem; }
.bubble .when{ font-size:.7rem; opacity:.72; display:block; text-align:right; margin-top:.2rem; }
.bubble.me a{ color:#fff; }
.thread-row.unread .fw-name{ font-weight:800; }
.announce{ background:linear-gradient(135deg,#fff7e6,#fff); border:1px solid #f5dfb0; border-radius:16px; padding:.85rem 1rem; }

/* Photos */
.photo-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:.6rem; }
@media (max-width:575.98px){ .photo-grid{ grid-template-columns:repeat(3,1fr); gap:.3rem; } }
.photo-grid a{ position:relative; display:block; aspect-ratio:1; border-radius:12px; overflow:hidden; background:#eee; }
.photo-grid img{ width:100%; height:100%; object-fit:cover; transition:transform .2s; }
.photo-grid a:hover img{ transform:scale(1.04); }

/* Borne / kiosque */
.kiosk{ background:var(--mpm-bg); min-height:100vh; }
.kiosk-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:1rem; }
.kiosk-tile{ background:#fff; border:2px solid var(--mpm-line); border-radius:22px; padding:1.1rem .8rem; text-align:center; width:100%; }
.kiosk-tile.here{ border-color:var(--mpm-primary); background:var(--mpm-soft); }
.kiosk-tile .av{ margin-bottom:.5rem; }
.kiosk-tile b{ display:block; font-family:'Nunito',sans-serif; font-size:1.15rem; }

/* Divers */
.dropzone{ border:2px dashed #d6d0c2; border-radius:16px; padding:1.4rem; text-align:center; color:var(--mpm-muted); background:#fbfaf6; cursor:pointer; transition:.15s; }
.dropzone.drag{ border-color:var(--mpm-primary); background:var(--mpm-soft); color:var(--mpm-primary); }
.dictate-wrap{ position:relative; }
.dictate-btn{ position:absolute; right:.4rem; bottom:.4rem; border:0; width:34px; height:34px; border-radius:50%; background:var(--mpm-soft); color:var(--mpm-primary); }
.dictate-btn.rec{ background:var(--mpm-accent); color:#fff; animation:pulse 1.2s infinite; }
@keyframes pulse{ 50%{ box-shadow:0 0 0 6px rgba(226,114,91,.25); } }
.phrases{ display:flex; flex-wrap:wrap; gap:.35rem; }
.phrases button{ border:1px solid var(--mpm-line); background:#fff; border-radius:20px; padding:.25rem .7rem; font-size:.8rem; font-weight:600; color:#4b5754; }
.phrases button:hover{ border-color:var(--mpm-primary); color:var(--mpm-primary); }
.level-pick{ display:flex; flex-wrap:wrap; gap:.35rem; }
.level-pick .btn{ border-radius:20px; }
.offline-pill{ position:fixed; left:50%; transform:translateX(-50%); bottom:calc(90px + env(safe-area-inset-bottom)); z-index:1060; background:#22302d; color:#fff; border-radius:20px; padding:.45rem 1rem; font-size:.85rem; font-weight:600; box-shadow:0 6px 18px rgba(0,0,0,.18); }
@media (min-width:992px){ .offline-pill{ bottom:1.25rem; } }
.mpm-toast{ position:fixed; right:1rem; bottom:1rem; z-index:1080; }
@media (max-width:991.98px){ .mpm-toast{ left:1rem; bottom:calc(84px + env(safe-area-inset-bottom)); } }
.money{ font-variant-numeric:tabular-nums; white-space:nowrap; }
.kv{ display:grid; grid-template-columns:minmax(120px,40%) 1fr; gap:.45rem 1rem; font-size:.93rem; }
.kv dt{ color:var(--mpm-muted); font-weight:600; }
.kv dd{ margin:0; }
.help-content h1{ font-size:1.7rem; font-weight:800; }
.help-content h2{ font-size:1.3rem; font-weight:800; margin-top:2rem; padding-top:.5rem; border-top:1px solid var(--mpm-line); }
.help-content h3{ font-size:1.08rem; font-weight:800; margin-top:1.3rem; }
.help-content img{ max-width:100%; border:1px solid var(--mpm-line); border-radius:12px; margin:.5rem 0 1rem; box-shadow:0 4px 14px rgba(0,0,0,.06); }
.help-content table{ width:100%; margin:1rem 0; font-size:.92rem; }
.help-content table th,.help-content table td{ border:1px solid var(--mpm-line); padding:.45rem .6rem; }
.help-content blockquote{ border-left:4px solid var(--mpm-primary); background:var(--mpm-soft); padding:.6rem 1rem; border-radius:0 10px 10px 0; }
.help-content code{ color:#a1452f; }
@media print{
  .mpm-top,.mpm-sidebar,.mpm-tabbar,.no-print,.mpm-flash{ display:none !important; }
  .mpm-main{ padding:0; max-width:none; }
  body{ background:#fff; }
  .card{ border:0; box-shadow:none; }
}
