/* Family Calendar V12 — rendu plus lisible, plus premium et sans doublon de liste agenda. */
.familyCalendarShell{display:grid;gap:11px;padding-bottom:4px}
.familyCalendarHero{position:relative;overflow:hidden;border:1px solid rgba(125,101,255,.22);background:linear-gradient(135deg,#171a2a 0%,#232550 44%,#146584 100%);color:#fff;border-radius:24px;padding:16px 15px 15px;box-shadow:0 18px 42px rgba(16,20,39,.22)}
.familyCalendarHero:before{content:"";position:absolute;right:-38px;top:-46px;width:132px;height:132px;border-radius:50%;background:rgba(113,238,255,.14)}
.familyCalendarHero:after{content:"";position:absolute;left:-24px;bottom:-50px;width:120px;height:120px;border-radius:50%;background:rgba(141,120,255,.13)}
.familyCalendarHero>*{position:relative;z-index:1}
.familyCalendarHeroTop{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.familyCalendarHeroMain{flex:1;min-width:0}.familyCalendarHeroMain small{display:block;color:#d2c8ff;font-size:8px;font-weight:950;letter-spacing:.48px;text-transform:uppercase}.familyCalendarHeroMain b{display:block;font-size:24px;line-height:1.05;margin-top:4px;letter-spacing:-.35px}.familyCalendarHeroMain span{display:block;color:#e4ecff;font-size:9.1px;line-height:1.45;margin-top:6px;max-width:270px}
.familyCalendarHeroActions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.familyCalendarHeroActions button{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.1);color:#fff;border-radius:13px;padding:9px 11px;font-size:8.7px;font-weight:900;cursor:pointer;backdrop-filter:blur(10px)}
.familyCalendarHeroToday{margin-top:12px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.07);border-radius:18px;padding:11px 12px;display:grid;gap:9px}
.familyCalendarHeroDate{display:flex;align-items:center;justify-content:space-between;gap:10px}.familyCalendarHeroDate b{display:block;font-size:13px}.familyCalendarHeroDate small{display:block;color:#d9def1;font-size:8.2px;margin-top:2px}.familyCalendarHeroMiniBtn{border:0;background:rgba(255,255,255,.14);color:#fff;border-radius:999px;padding:7px 10px;font-size:8px;font-weight:950;cursor:pointer;white-space:nowrap}
.familyCalendarHeroStats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.familyCalendarHeroStat{border:1px solid rgba(255,255,255,.08);background:rgba(11,12,18,.16);border-radius:15px;padding:9px 10px}.familyCalendarHeroStat b{display:block;font-size:15px}.familyCalendarHeroStat small{display:block;color:#d8deee;font-size:7.4px;line-height:1.35;margin-top:3px}
.familyCalendarHeroList{display:grid;gap:6px}.familyCalendarHeroEvent{display:grid;grid-template-columns:45px 9px 1fr auto;align-items:center;gap:7px;color:#fff;text-align:left;border:0;background:rgba(255,255,255,.06);border-radius:14px;padding:8px 9px;cursor:pointer}.familyCalendarHeroEvent time{font-size:8.6px;font-weight:900;color:#ffffffd7;font-variant-numeric:tabular-nums}.familyCalendarHeroEventDot{width:8px;height:8px;border-radius:50%;background:var(--member-color,#8d78ff)}.familyCalendarHeroEvent b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.familyCalendarHeroEvent em{font-style:normal;font-size:8px;color:#d9def1;max-width:82px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.familyCalendarTop{display:flex;align-items:center;gap:10px;margin:0 1px 1px}.familyCalendarTopMain{flex:1;min-width:0}.familyCalendarTopMain small{display:block;color:#725be0;font-size:8px;font-weight:950;letter-spacing:.45px;text-transform:uppercase}.familyCalendarTopMain b{display:block;font-size:19px;line-height:1.15;margin-top:2px}.familyCalendarTopMain span{display:block;color:var(--muted);font-size:9px;line-height:1.35;margin-top:3px}
.familyCalendarQuick{display:flex;gap:6px}.familyCalendarQuick button{border:1px solid var(--border);background:#fff;border-radius:12px;padding:8px 10px;font-size:8.6px;font-weight:900;color:#5f4bc2;cursor:pointer;white-space:nowrap;box-shadow:0 6px 14px rgba(51,55,77,.04)}
.familyCalendarTabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;background:linear-gradient(180deg,#f5f6fb,#eff1f7);border:1px solid var(--border);border-radius:15px;padding:4px}.familyCalendarTabs button{border:0;background:transparent;border-radius:11px;padding:10px 8px;color:#696d79;font-size:9.3px;font-weight:900;cursor:pointer}.familyCalendarTabs button.on{background:linear-gradient(145deg,#6f56e4,#563fbe);color:#fff;box-shadow:0 7px 16px rgba(92,70,196,.24)}
.familyCalendarActionRow{display:flex;align-items:center;gap:8px;overflow:auto;scrollbar-width:none}.familyCalendarActionRow::-webkit-scrollbar{display:none}.familyCalendarTodayBtn{border:1px solid #7760db;background:#f5f2ff;color:#604ac7;border-radius:999px;padding:8px 11px;font-size:8.5px;font-weight:950;white-space:nowrap;cursor:pointer;box-shadow:0 8px 18px rgba(115,87,255,.09)}.familyCalendarActionRow .familyPlanningMembers{padding:0;flex:1}.familyCalendarActionRow .familyPlanningChip{padding:8px 11px}
.familyCalendarTodayCard{border:1px solid var(--border);background:linear-gradient(145deg,var(--surface),var(--surface2));border-radius:18px;padding:12px 12px 11px;box-shadow:0 10px 26px rgba(27,29,40,.05)}.familyCalendarTodayHead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.familyCalendarTodayHead b{font-size:11.2px}.familyCalendarTodayHead small{font-size:8.2px;color:#725be0;font-weight:900;cursor:pointer}.familyCalendarTodayRows{display:grid;gap:6px}.familyCalendarTodayRow{display:grid;grid-template-columns:42px 9px 1fr auto;align-items:center;gap:7px;border:0;background:transparent;text-align:left;padding:3px 0;cursor:pointer;color:inherit}.familyCalendarTodayRow time{font-size:8.7px;color:var(--muted);font-variant-numeric:tabular-nums}.familyCalendarTodayDot{width:8px;height:8px;border-radius:50%;background:var(--member-color,#725be0)}.familyCalendarTodayRow b{font-size:9.9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.familyCalendarTodayRow em{font-style:normal;font-size:8px;color:var(--muted);max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.familyCalendarEmptyMini{font-size:8.9px;color:var(--muted);padding:4px 0}
.familyCalendarNav{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:8px}.familyCalendarNav>button{width:38px;height:38px;border:1px solid var(--border);background:#fff;border-radius:13px;color:#5f4bc2;font-size:18px;font-weight:900;cursor:pointer;box-shadow:0 8px 18px rgba(26,28,40,.05)}.familyCalendarNavTitle{text-align:center}.familyCalendarNavTitle b{display:block;font-size:11.4px;text-transform:capitalize}.familyCalendarNavTitle small{display:block;color:var(--muted);font-size:8px;margin-top:2px}
.familyCalendarMonth{border:1px solid var(--border);background:#fff;border-radius:19px;padding:11px;box-shadow:0 12px 28px rgba(22,26,40,.05)}.familyCalendarWeekdays,.familyCalendarMonthGrid{display:grid;grid-template-columns:repeat(7,1fr)}.familyCalendarWeekdays span{text-align:center;color:var(--muted);font-size:7.2px;font-weight:900;text-transform:uppercase;padding:4px 0 7px}.familyCalendarMonthGrid{gap:3px}.familyCalendarDayCell{position:relative;border:0;background:transparent;min-height:56px;border-radius:15px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:7px 3px 4px;cursor:pointer;color:inherit;transition:transform .14s ease,background .16s ease,box-shadow .16s ease}.familyCalendarDayCell:active{transform:scale(.98)}.familyCalendarDayCell.muted{opacity:.42}.familyCalendarDayCell.today:not(.selected){background:linear-gradient(180deg,rgba(115,87,255,.08),transparent)}.familyCalendarDayCell.today:not(.selected) .familyCalendarDayNumber{box-shadow:inset 0 0 0 1px #765edf}.familyCalendarDayCell.selected{background:linear-gradient(145deg,#7259e0,#5b43c4);color:#fff;box-shadow:0 12px 24px rgba(91,67,196,.24)}.familyCalendarDayNumber{width:31px;height:30px;border-radius:10px;display:grid;place-items:center;font-size:10.2px;font-weight:950}.familyCalendarDots{min-height:10px;display:flex;gap:3px;justify-content:center;align-items:center;margin-top:4px}.familyCalendarDots i{width:5px;height:5px;border-radius:50%;background:var(--dot,#765edf)}.familyCalendarDayCell.selected .familyCalendarDots i{box-shadow:0 0 0 1px rgba(255,255,255,.55)}
.familyCalendarSelected{border-top:1px solid var(--border);padding-top:10px;margin-top:8px}.familyCalendarSelectedHead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.familyCalendarSelectedHead b{font-size:10.8px;text-transform:capitalize}.familyCalendarSelectedHead small{font-size:8.1px;color:var(--muted)}.familyCalendarEventList{display:grid;gap:7px}.familyCalendarEvent{position:relative;border:1px solid var(--shift-border,var(--border));background:var(--shift-bg,#f5f2ff);border-radius:14px;padding:9px 10px 9px 13px;text-align:left;color:inherit;cursor:pointer;overflow:hidden;box-shadow:0 8px 18px rgba(20,24,38,.05)}.familyCalendarEvent:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--shift-accent,#725be0)}.familyCalendarEventTop{display:flex;gap:8px;align-items:center}.familyCalendarEventTop time{font-size:8.6px;font-weight:950;color:var(--shift-text,#5f4bc2);font-variant-numeric:tabular-nums}.familyCalendarEventTop b{font-size:10px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.familyCalendarAvatar{width:23px;height:23px;border-radius:50%;background:var(--member-color,#725be0);color:#fff;display:grid;place-items:center;font-size:8px;font-weight:950;flex:0 0 auto;box-shadow:0 8px 16px rgba(71,63,138,.18)}.familyCalendarEvent small{display:block;color:var(--muted);font-size:7.9px;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.familyCalendarWeekScroll{overflow-x:auto;border:1px solid var(--border);background:#fff;border-radius:18px;scrollbar-width:none;box-shadow:0 12px 28px rgba(22,26,40,.05)}.familyCalendarWeekScroll::-webkit-scrollbar{display:none}.familyCalendarWeekInner{min-width:720px}.familyCalendarWeekHead{display:grid;grid-template-columns:46px repeat(7,1fr);position:sticky;top:0;z-index:3;background:inherit;border-bottom:1px solid var(--border)}.familyCalendarWeekHead>span{padding:8px 3px;text-align:center;font-size:7.6px;color:var(--muted);font-weight:900}.familyCalendarWeekHead>button{border:0;border-left:1px solid var(--border);background:transparent;color:inherit;padding:7px 2px;cursor:pointer;border-radius:0}.familyCalendarWeekHead>button b{display:block;font-size:8px;text-transform:uppercase}.familyCalendarWeekHead>button strong{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:10px;font-size:10px;margin-top:2px}.familyCalendarWeekHead>button.selected strong{background:#6750d4;color:#fff;box-shadow:0 8px 16px rgba(86,63,183,.2)}.familyCalendarWeekAllDay{display:grid;grid-template-columns:46px repeat(7,1fr);border-bottom:1px solid var(--border);min-height:36px}.familyCalendarWeekAllDay>small{font-size:6.8px;color:var(--muted);padding:8px 3px}.familyCalendarAllDayCell{border-left:1px solid var(--border);padding:4px;display:grid;gap:3px}.familyCalendarAllDayPill{border:0;border-radius:8px;background:var(--shift-bg,#f5f2ff);color:var(--shift-text,#5f4bc2);font-size:7px;font-weight:900;padding:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;border-left:2px solid var(--shift-accent,#725be0)}
.familyCalendarWeekTimeline{display:grid;grid-template-columns:46px 1fr}.familyCalendarHourGutter{position:relative}.familyCalendarHourGutter span{position:absolute;right:6px;transform:translateY(-50%);font-size:7px;color:var(--muted);font-variant-numeric:tabular-nums}.familyCalendarWeekTracks{display:grid;grid-template-columns:repeat(7,1fr);position:relative;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 43px,var(--border) 44px)}.familyCalendarWeekTrack{position:relative;border-left:1px solid var(--border);min-height:704px}.familyCalendarTimed{position:absolute;left:4px;right:4px;min-height:28px;border:1px solid var(--shift-border,var(--border));border-left:3px solid var(--shift-accent,#725be0);background:var(--shift-bg,#f5f2ff);border-radius:9px;padding:5px 5px 5px 6px;color:inherit;text-align:left;overflow:hidden;cursor:pointer;box-shadow:0 6px 14px rgba(20,24,38,.04)}.familyCalendarTimed time{display:block;font-size:6.8px;font-weight:950;color:var(--shift-text,#5f4bc2)}.familyCalendarTimed b{display:block;font-size:7.5px;line-height:1.15;margin-top:1px}.familyCalendarTimed small{display:block;font-size:6.4px;color:var(--muted);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.familyCalendarDayView{border:1px solid var(--border);background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 12px 28px rgba(22,26,40,.05)}.familyCalendarDayAllDay{padding:8px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:58px 1fr;gap:7px;align-items:start}.familyCalendarDayAllDay>small{font-size:7.2px;color:var(--muted);padding-top:6px}.familyCalendarDayAllDayList{display:grid;gap:5px}.familyCalendarDayTimeline{display:grid;grid-template-columns:50px 1fr}.familyCalendarDayHours{position:relative}.familyCalendarDayHours span{position:absolute;right:7px;transform:translateY(-50%);font-size:7.5px;color:var(--muted);font-variant-numeric:tabular-nums}.familyCalendarDayTrack{position:relative;min-height:928px;border-left:1px solid var(--border);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 57px,var(--border) 58px)}.familyCalendarDayTimed{position:absolute;left:8px;right:8px;min-height:40px;border:1px solid var(--shift-border,var(--border));border-left:4px solid var(--shift-accent,#725be0);background:var(--shift-bg,#f5f2ff);border-radius:12px;padding:8px 10px;color:inherit;text-align:left;cursor:pointer;overflow:hidden;box-shadow:0 10px 18px rgba(20,24,38,.05)}.familyCalendarDayTimed time{font-size:8.2px;font-weight:950;color:var(--shift-text,#5f4bc2)}.familyCalendarDayTimed b{display:block;font-size:9.7px;margin-top:2px}.familyCalendarDayTimed small{display:block;font-size:7.7px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.familyCalendarDayTimed .familyCalendarAvatar{position:absolute;right:8px;top:8px}
.familyCalendarFooter{font-size:7.8px;line-height:1.45;color:var(--muted);padding:5px 2px 2px;text-align:center}
.familyFamilyOverview{display:grid;gap:10px;margin:10px 0 2px}.familyFamilyOverviewCard{position:relative;overflow:hidden;border:1px solid rgba(115,87,255,.16);background:linear-gradient(135deg,#14192a,#1f2245 58%,#123f57 140%);color:#fff;border-radius:22px;padding:14px 14px 13px;box-shadow:0 14px 34px rgba(17,19,35,.18)}.familyFamilyOverviewCard:after{content:"";position:absolute;right:-28px;top:-36px;width:110px;height:110px;border-radius:50%;background:rgba(123,223,255,.11)}.familyFamilyOverviewCard>*{position:relative;z-index:1}.familyFamilyOverviewHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.familyFamilyOverviewHead b{display:block;font-size:18px;line-height:1.08}.familyFamilyOverviewHead small{display:block;color:#d9def1;font-size:8.2px;line-height:1.4;margin-top:4px;max-width:220px}.familyFamilyOverviewOpen{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.12);color:#fff;border-radius:12px;padding:9px 11px;font-size:8.5px;font-weight:900;cursor:pointer;white-space:nowrap}.familyFamilyOverviewStats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}.familyFamilyOverviewStat{border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.06);border-radius:14px;padding:9px 10px}.familyFamilyOverviewStat b{display:block;font-size:15px}.familyFamilyOverviewStat small{display:block;color:#dce2f2;font-size:7.2px;line-height:1.35;margin-top:3px}.familyFamilyOverviewEvents{display:grid;gap:6px;margin-top:10px}.familyFamilyOverviewRow{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:7px;border:0;background:rgba(255,255,255,.06);color:#fff;border-radius:14px;padding:9px 10px;text-align:left;cursor:pointer}.familyFamilyOverviewRow time{font-size:8.5px;font-weight:900;color:#f4f7ff}.familyFamilyOverviewRow b{font-size:9.8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.familyFamilyOverviewRow small{display:block;color:#dce2f2;font-size:7.8px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.familyFamilyOverviewArrow{font-size:16px;color:#d2c8ff}.familyFamilyOverviewEmpty{border:1px dashed rgba(255,255,255,.14);border-radius:16px;padding:12px;text-align:center;color:#dce2f2;font-size:8.6px;line-height:1.5;margin-top:10px}
html[data-theme="dark"] .familyCalendarQuick button,html[data-theme="dark"] .familyCalendarTodayCard,html[data-theme="dark"] .familyCalendarNav>button,html[data-theme="dark"] .familyCalendarMonth,html[data-theme="dark"] .familyCalendarWeekScroll,html[data-theme="dark"] .familyCalendarDayView{background:#171b24;border-color:#2a3040;color:#f3f4f8}
html[data-theme="dark"] .familyCalendarTabs{background:#121620;border-color:#2a3040}html[data-theme="dark"] .familyCalendarTabs button{color:#a8afbf}html[data-theme="dark"] .familyCalendarTabs button.on{color:#fff;background:#5f48c8}
html[data-theme="dark"] .familyCalendarTodayBtn{background:#201b35;border-color:#725cdf;color:#c4b8ff}
html[data-theme="dark"] .familyCalendarDayCell.today:not(.selected){background:linear-gradient(180deg,rgba(114,92,223,.12),transparent)}
html[data-theme="dark"] .familyCalendarDayCell.selected{background:linear-gradient(145deg,#6c53db,#4f38ad)}
html[data-theme="dark"] .familyCalendarEvent,html[data-theme="dark"] .familyCalendarTimed,html[data-theme="dark"] .familyCalendarDayTimed,html[data-theme="dark"] .familyCalendarAllDayPill{background:var(--shift-bg-dark,#292440);color:#f4f5f8}.shiftColored.familyCalendarEvent,.shiftColored.familyCalendarTimed,.shiftColored.familyCalendarDayTimed,.shiftColored.familyCalendarAllDayPill{background:var(--shift-bg)!important}html[data-theme="dark"] .shiftColored.familyCalendarEvent,html[data-theme="dark"] .shiftColored.familyCalendarTimed,html[data-theme="dark"] .shiftColored.familyCalendarDayTimed,html[data-theme="dark"] .shiftColored.familyCalendarAllDayPill{background:var(--shift-bg-dark)!important}
@media(max-width:620px){
  #familyPlanningSheet .sheet{padding-left:14px!important;padding-right:14px!important}
  .familyCalendarHero{padding:14px 13px 13px}.familyCalendarHeroTop{display:block}.familyCalendarHeroMain b{font-size:21px}.familyCalendarHeroMain span{max-width:none}.familyCalendarHeroActions{margin-top:10px;justify-content:flex-start}.familyCalendarHeroStats,.familyFamilyOverviewStats{grid-template-columns:1fr}.familyCalendarHeroEvent{grid-template-columns:40px 8px 1fr auto}
  .familyCalendarTopMain b{font-size:17px}.familyCalendarTopMain span{font-size:8.4px}.familyCalendarQuick button{padding:8px 9px}
  .familyCalendarDayCell{min-height:50px}.familyCalendarMonth{padding:9px 7px}.familyCalendarDayNumber{width:28px;height:27px}
  .familyCalendarSelectedHead b{font-size:10px}.familyCalendarTodayRow{grid-template-columns:36px 7px 1fr auto}.familyCalendarTodayRow em{max-width:60px}
  .familyFamilyOverviewHead{display:block}.familyFamilyOverviewOpen{margin-top:10px}
}
@media(min-width:768px){.familyCalendarMonth{padding:13px}.familyCalendarDayCell{min-height:62px}.familyCalendarWeekInner{min-width:860px}.familyCalendarHeroMain b{font-size:26px}.familyFamilyOverviewStats,.familyCalendarHeroStats{grid-template-columns:repeat(3,minmax(0,1fr))}}
