
.ag-header{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1rem;background:var(--sur);border-radius:var(--radius);border:1px solid var(--line)}
.ag-month{font:700 1rem/1 'Lora',serif;color:var(--ink)}
.ag-nav{display:flex;gap:.35rem}
.ag-nav button{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:var(--bg);font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;color:var(--ink)}
.ag-nav button:hover{background:var(--bbg);border-color:var(--b2)}
.ag-nav .today-btn{width:auto;padding:0 .6rem;border-radius:12px;font-size:.72rem;font-weight:600}
.ag-tabs{display:flex;gap:.3rem;background:var(--bg);border-radius:20px;padding:3px;border:1px solid var(--line)}
.ag-tab{padding:.3rem .75rem;border-radius:16px;border:none;background:none;font:500 .75rem/1 'DM Sans',sans-serif;color:var(--soft);cursor:pointer;transition:all .15s}
.ag-tab.active{background:var(--sur);color:var(--brand);box-shadow:var(--sh)}
.cal-grid{background:var(--sur);border-radius:var(--radius);border:1px solid var(--line);overflow:hidden}
.cal-head{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line)}
.cal-hlabel{text-align:center;padding:.5rem 0;font:600 .65rem/1 'DM Sans',sans-serif;color:var(--soft);text-transform:uppercase;letter-spacing:.06em}
.cal-body{display:grid;grid-template-columns:repeat(7,1fr)}
.cal-cell{min-height:72px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:.3rem .25rem;cursor:pointer;transition:background .15s}
.cal-cell:nth-child(7n){border-right:none}
.cal-cell:hover{background:var(--bbg)}
.cal-cell.other{opacity:.3}
.cal-cell.today{background:var(--bbg)}
.cal-num{font:600 .72rem/1 'DM Sans',sans-serif;color:var(--muted);width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:.2rem}
.cal-cell.today .cal-num{background:var(--brand);color:#fff}
.cal-ev{font:500 .6rem/1.2 'DM Sans',sans-serif;padding:.15rem .3rem;border-radius:4px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-item{display:flex;gap:.75rem;align-items:flex-start;padding:.75rem .9rem;background:var(--sur);border-radius:var(--radius-sm);border:1px solid var(--line);border-left:3px solid var(--line);margin-bottom:.45rem;transition:box-shadow .15s;cursor:pointer}
.ag-item:hover{box-shadow:var(--sh)}
.ag-item-time{font:600 .72rem/1 'DM Sans',sans-serif;color:var(--soft);min-width:36px;padding-top:.15rem;flex-shrink:0}
.ag-item-body{flex:1;min-width:0}
.ag-item-title{font:600 .85rem/1.3 'DM Sans',sans-serif;color:var(--ink);margin-bottom:.2rem}
.ag-item-meta{font:400 .7rem/1 'DM Sans',sans-serif;color:var(--soft);display:flex;gap:.4rem;flex-wrap:wrap}
.ag-day-title{font:700 .78rem/1 'Lora',serif;color:var(--brand);padding:.35rem 0;border-bottom:2px solid var(--b100);margin-bottom:.6rem;text-transform:capitalize}
.ev-atelier{border-left-color:#8b5cf6}
.ev-event_groupe{border-left-color:#2eb087}
.ev-rdv_mentorat{border-left-color:#0ea5e9}
.ev-location{border-left-color:#14b8a6}
.ev-sejour{border-left-color:#f59e0b}
.j-modal-overlay{position:fixed;inset:0;background:rgba(11,18,32,.45);z-index:2000;display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;pointer-events:none;transition:opacity .2s}
.j-modal-overlay.open{opacity:1;pointer-events:all}
.j-modal{background:var(--sur);border-radius:var(--radius);width:100%;max-width:500px;max-height:85vh;overflow-y:auto;box-shadow:var(--sh2);transform:translateY(12px);transition:transform .2s}
.j-modal-overlay.open .j-modal{transform:translateY(0)}
.j-modal__head{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem .75rem;border-bottom:1px solid var(--line)}
.j-modal__title{font:600 1rem/1 'Lora',serif;color:var(--ink)}
.j-modal__close{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--bg);font-size:1.1rem;color:var(--muted);cursor:pointer}
.j-modal__body{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}
.fi{display:flex;flex-direction:column;gap:.3rem}
.fl{font:600 .75rem/1 'DM Sans',sans-serif;color:var(--muted)}
.fin{padding:.55rem .75rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);font:.85rem/1 'DM Sans',sans-serif;color:var(--ink);background:var(--bg);outline:none;transition:border-color .2s}
.fin:focus{border-color:var(--b2);background:var(--sur)}
