/*! Cœur de Famille - bundle calendrier familial généré par tools/build-public-css.php */
.family-date-field,.family-calendar{--date-ink:var(--color-primary,#17324D);--date-soft:var(--color-primary-soft,#E5EDF3);--date-coral:var(--color-accent-readable,#963C25);--date-peach:var(--color-accent-soft,#F7F1EC);--date-surface:var(--color-surface,#FFFFFF);--date-muted:var(--color-muted-strong,#425463);--date-border:var(--color-border,#E6D9CF);--date-font:var(--font-body,Inter,sans-serif);--date-title:var(--font-title,Georgia,serif);color:var(--date-ink);font-family:var(--date-font)}.family-date-field{display:block;position:relative;min-width:0;width:100%}input.family-date-source{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:0 !important;border:0 !important;opacity:0;pointer-events:none}.family-date-trigger{display:flex;align-items:center;gap:12px;width:100%;min-height:54px;padding:12px 14px;border:1px solid var(--date-border);border-radius:16px;background:var(--date-surface);color:var(--date-ink);text-align:left;cursor:pointer;font:inherit}.family-date-trigger>svg{width:24px;height:24px;flex-shrink:0;color:var(--date-coral)}.family-date-value{flex:1;overflow-wrap:anywhere}.family-date-trigger.is-empty .family-date-value{color:var(--date-muted)}.family-date-open{border-radius:20px;background:var(--date-soft);padding:5px 10px;font-size:.75rem;font-weight:600}.family-date-trigger:disabled{cursor:default;opacity:.6}.family-date-trigger[aria-invalid="true"]{border-color:var(--date-coral)}.family-date-error{display:block;margin-top:8px;color:var(--date-coral);font-size:var(--font-size-body-small,.875rem);line-height:1.5}.family-date-trigger:focus-visible,.family-calendar button:focus-visible,.family-calendar input:focus-visible{outline:2px solid var(--date-ink);outline-offset:2px}dialog.family-calendar{width:min(560px,calc(100vw - 24px));max-width:none;max-height:calc(100dvh - 24px);padding:0;border:1px solid var(--date-border);border-radius:30px;background:var(--date-surface);box-shadow:0 24px 80px rgba(23,50,77,.24);overflow:hidden}.family-calendar::backdrop{background:rgba(23,50,77,.46);backdrop-filter:blur(5px)}.family-calendar[open]{animation:family-calendar-arrive .24s ease-out}.family-calendar-card{display:flex;flex-direction:column;max-height:calc(100dvh - 26px);min-height:0}.family-calendar-header{display:flex;align-items:center;gap:12px;position:relative;padding:22px 22px 14px;background:linear-gradient(125deg,var(--date-peach),var(--date-surface) 70%)}.family-calendar-header>img{width:48px;height:48px;flex-shrink:0}.family-calendar-header>div{min-width:0;flex:1}.family-calendar-kicker{margin:0 0 6px;color:var(--date-coral);font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;font-weight:600}.family-calendar h2{margin:0;color:var(--date-ink);font:600 1.7rem/1.15 var(--date-title);overflow-wrap:anywhere}.family-calendar button{font-family:var(--date-font);cursor:pointer}.family-calendar button:disabled{cursor:default;opacity:.43}.family-calendar-header>button{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border:1px solid var(--date-border);border-radius:50%;background:var(--date-surface);color:var(--date-ink);font-size:25px}.family-calendar-preview{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 18px 18px;color:var(--date-ink);text-align:center}.family-calendar-preview>span{font:600 1.4rem/1.3 var(--date-title)}.family-calendar-preview small{color:var(--date-coral);font-size:.76rem;letter-spacing:.03em}.family-calendar-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:0 22px 12px}.family-calendar-steps button{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:10px;min-height:62px;min-width:0;border:1px solid var(--date-border);border-radius:15px;color:var(--date-ink);background:var(--date-surface);text-align:left}.family-calendar-steps span{font-size:.7rem}.family-calendar-steps strong{font-size:.8rem;overflow-wrap:anywhere}.family-calendar-steps [aria-pressed="true"]{color:var(--date-surface);background:var(--date-ink);border-color:var(--date-ink)}.family-calendar-content{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 22px 12px}.family-calendar-help{margin:2px 0 12px;color:var(--date-muted);font-size:.8rem;line-height:1.45}.family-calendar-year{display:block;position:relative;margin-top:10px}.family-calendar-year label{display:block;position:relative;z-index:3;width:fit-content;max-width:calc(100% - 28px);margin:0 0 -9px 14px;padding:0 6px;background:var(--date-surface);font-size:.8125rem;line-height:1.4}.family-calendar-year input{position:relative;z-index:0;box-sizing:border-box;width:100%;min-width:0;min-height:50px;padding:12px 14px;border:1px solid var(--date-border);border-radius:var(--radius-control);background:var(--date-surface);color:var(--date-ink);font:400 1rem/1.5 var(--date-font);text-align:left}.family-calendar-year input:focus-visible{border-color:var(--date-ink);outline-offset:0;box-shadow:none}.family-calendar-kicker,.family-calendar.is-year-only .family-calendar-preview,.family-calendar.is-year-only .family-calendar-steps,.family-calendar.is-complete-date .family-calendar-preview{display:none}.family-calendar-range{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0}.family-calendar-range>button{width:42px;min-height:42px;border:1px solid var(--date-border);border-radius:50%;color:var(--date-ink);background:var(--date-surface);font-size:24px}.family-calendar-range>strong{font:600 1.25rem var(--date-title);text-transform:capitalize}.family-calendar-grid{display:grid;gap:7px}.family-calendar-grid.is-years,.family-calendar-grid.is-months{grid-template-columns:repeat(3,minmax(0,1fr))}.family-calendar-grid.is-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.family-calendar-grid>button{min-width:0;min-height:44px;padding:7px 4px;border:1px solid var(--date-border);border-radius:13px;background:var(--date-surface);color:var(--date-ink);font-size:.86rem}.family-calendar-grid.is-months>button{text-transform:capitalize}.family-calendar-grid.is-days>button{min-height:40px;border-color:transparent;border-radius:50%}.family-calendar-grid>span{text-align:center;padding:5px 0;color:var(--date-muted);font-size:.75rem}.family-calendar-grid>button:not(:disabled):hover{border-color:var(--date-ink);background:var(--date-soft)}.family-calendar-grid>button[aria-pressed="true"],.family-calendar-grid>button[aria-pressed="true"]:not(:disabled):hover{color:var(--date-surface);border-color:var(--date-ink);background:var(--date-ink);box-shadow:0 4px 12px rgba(23,50,77,.16)}[data-calendar-body]>button{min-height:44px;margin-top:10px;padding:6px 4px;border:0;background:transparent;color:var(--date-coral);text-decoration:underline;text-underline-offset:4px;font-size:.8rem}[data-calendar-time]{margin-top:16px}[data-calendar-time] label{display:block;margin-bottom:5px}[data-calendar-time] input{width:100%;min-height:46px;border:1px solid var(--date-border);border-radius:12px;padding:8px;color:var(--date-ink);background:var(--date-surface)}.family-calendar-footer{flex-shrink:0;padding:10px 22px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--date-border);background:var(--date-surface)}.family-calendar-footer>p{margin:0 0 8px;font-size:.72rem;line-height:1.4;color:var(--date-muted)}.family-calendar-validate{width:100%;min-height:48px;padding:10px;border:0;border-radius:28px;color:var(--date-surface);background:var(--date-ink);font-size:.95rem;font-weight:600}.family-calendar-secondary{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}.family-calendar-secondary>button{min-height:40px;padding:7px 4px;border:0;background:transparent;color:var(--date-muted);font-size:.8rem}@media (max-width:600px){dialog.family-calendar{margin:auto auto max(8px,env(safe-area-inset-bottom,0px));width:calc(100vw - 16px);border-radius:26px}.family-calendar-header{padding:18px 16px 10px;gap:9px}.family-calendar h2{font-size:1.45rem}.family-calendar-kicker{font-size:.58rem}.family-calendar-preview{padding:10px 12px 14px}.family-calendar-preview>span{font-size:1.4rem}.family-calendar-steps{padding:0 16px 10px}.family-calendar-content{padding:0 16px 10px}.family-calendar-footer{padding-left:16px;padding-right:16px}.family-date-open{display:none}}@media (prefers-reduced-motion:reduce){.family-calendar[open]{animation:none}}@keyframes family-calendar-arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.family-calendar.is-year-only .family-calendar-steps{grid-template-columns:1fr}.family-date-trigger,dialog.family-calendar{box-sizing:border-box}
