.cf{--cf-main:#4d6a7c;--cf-ok:#2e7d4f;--cf-danger:#b3261e;--cf-warn:#a86200;--cf-border:#d7dde2;--cf-bg:#f5f7f8;font-size:1rem;line-height:1.5}
.cf *{box-sizing:border-box}
.cf-btn{display:inline-block;padding:.5em 1em;border:1px solid var(--cf-main);border-radius:6px;background:#fff;color:var(--cf-main);font:inherit;font-weight:600;text-decoration:none;cursor:pointer;line-height:1.3}
.cf-btn:hover,.cf-btn:focus-visible{background:var(--cf-bg)}
.cf-btn--primary{background:var(--cf-main);color:#fff}
.cf-btn--primary:hover{background:#3b5262;color:#fff}
.cf-btn--ok{border-color:var(--cf-ok);color:#fff;background:var(--cf-ok)}
.cf-btn--danger{border-color:var(--cf-danger);color:var(--cf-danger)}
.cf-btn--small{padding:.3em .7em;font-size:.875em}
.cf-btn[disabled]{opacity:.45;cursor:not-allowed}
.cf-notice{padding:.8em 1em;border-radius:6px;margin:0 0 1em;border-left:4px solid var(--cf-main);background:var(--cf-bg)}
.cf-notice--success{border-color:var(--cf-ok);background:#eaf5ee}
.cf-notice--error{border-color:var(--cf-danger);background:#fbeceb}
.cf-notice--warn{border-color:var(--cf-warn);background:#fdf3e4}
.cf-badge{display:inline-block;padding:.15em .6em;border-radius:99px;font-size:.8em;font-weight:600;background:#e7ebee;color:#33454f}
.cf-badge--open,.cf-badge--validee{background:#e2f2e8;color:#1f5e3a}
.cf-badge--closed{background:#eee;color:#555}
.cf-badge--demande{background:#e5eef9;color:#1d4f8f}
.cf-badge--attente{background:#fdf0dc;color:#7a4b00}
.cf-badge--refusee,.cf-badge--annulee{background:#f6e3e2;color:#8c1d16}
.cf-badge--warn{background:#fdf0dc;color:#7a4b00}
.cf-filters{display:flex;flex-wrap:wrap;gap:.75em;align-items:flex-end;margin-bottom:1.5em;padding:1em;background:var(--cf-bg);border-radius:8px}
.cf-filters label{display:flex;flex-direction:column;font-size:.85em;font-weight:600;gap:.25em}
.cf-filters select{min-width:12em;padding:.4em;font:inherit}
.cf-cards,.cf-my{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25em}
.cf-card{border:1px solid var(--cf-border);border-top:6px solid var(--cf-color,#4d6a7c);border-radius:8px;padding:1em 1.1em;background:#fff;display:flex;flex-direction:column;gap:.35em}
.cf-card p{margin:0}
.cf-card__type{font-size:.75em;text-transform:uppercase;letter-spacing:.04em;font-weight:700;color:#555}
.cf-card__title{font-size:1.1em;margin:.1em 0;line-height:1.3}
.cf-card__title a{text-decoration:none;color:inherit}
.cf-card__date{font-weight:600}
.cf-card__hours,.cf-card__public{font-size:.9em;color:#555}
.cf-card .cf-btn{align-self:flex-start;margin-top:auto}
.cf-card__actions{display:flex;flex-wrap:wrap;gap:.5em;margin-top:.5em;align-items:center}
.cf-single__type{display:inline-block;background:var(--cf-color);color:#fff;padding:.2em .7em;border-radius:4px;font-size:.85em;font-weight:700}
.cf-single__date{font-size:1.15em;font-weight:700;text-transform:uppercase;margin:.6em 0 0}
.cf-tag{display:inline-block;background:var(--cf-color,#c4ab76);color:#fff;font-size:.85em;padding:.4em .8em;margin:1.6em 0 .6em;text-transform:uppercase;letter-spacing:.03em}
.cf-form fieldset{border:1px solid var(--cf-border);border-radius:8px;padding:1em 1.2em;margin:0 0 1.2em}
.cf-form legend{font-weight:700;padding:0 .4em}
.cf-field{display:flex;flex-direction:column;gap:.3em;margin-bottom:1em}
.cf-field>label,.cf-field legend{font-weight:600}
.cf-field input[type=text],.cf-field input[type=email],.cf-field input[type=tel],.cf-field input[type=number],.cf-field input[type=date],.cf-field input[type=time],.cf-field input[type=datetime-local],.cf-field select,.cf-field textarea{width:100%;padding:.55em .6em;border:1px solid #b8c2c9;border-radius:6px;font:inherit;background:#fff}
.cf-field small{color:#666}
.cf-check label{font-weight:400}
.cf-req{color:var(--cf-danger)}
.cf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0 1em}
.cf-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.3em .8em}
.cf-checks label{font-weight:400}
.cf-scale{display:flex;flex-wrap:wrap;gap:.4em 1em}
.cf-scale label{font-weight:400;display:flex;gap:.3em;align-items:center}
.cf-scale--10 label{flex-direction:column;gap:0;font-size:.85em;min-width:2em;text-align:center}
.cf-survey fieldset{border:0;padding:0;margin:0 0 1.1em}
.cf-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.cf-small{font-size:.875em;color:#555}
.cf-inline{display:inline}
.cf-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6em;margin-bottom:1em}
.cf-toolbar h2{margin:0}
.cf-table-wrap{overflow-x:auto;margin-bottom:1em;-webkit-overflow-scrolling:touch}
.cf-table{width:100%;border-collapse:collapse;font-size:.92em}
.cf-table th,.cf-table td{border-bottom:1px solid var(--cf-border);padding:.5em .55em;text-align:left;vertical-align:top}
.cf-table thead th{background:var(--cf-bg);font-size:.85em;white-space:nowrap}
.cf-table small{color:#666}
.cf-prio{background:#fffbe6}
.cf-prio-tag{display:inline-block;background:#f3cf00;color:#222;font-weight:700;padding:0 .45em;border-radius:4px}
.cf-st-refusee,.cf-st-annulee{opacity:.6}
.cf-dot{display:inline-block;width:.75em;height:.75em;border-radius:50%;margin-right:.45em;vertical-align:middle}
.cf-actions{display:flex;flex-wrap:wrap;gap:.5em;align-items:center;padding:.8em;background:var(--cf-bg);border-radius:8px;margin-bottom:1em;position:sticky;bottom:0}
.cf-tabs{display:flex;flex-wrap:wrap;gap:.25em;border-bottom:2px solid var(--cf-border);margin:1em 0}
.cf-tabs a{padding:.5em .9em;text-decoration:none;color:#444;border-radius:6px 6px 0 0;font-weight:600}
.cf-tabs a.is-active{background:var(--cf-main);color:#fff}
.cf-head{border-left:6px solid var(--cf-color);padding:.2em 0 .2em 1em}
.cf-head h2{margin:.1em 0}
.cf-head p{margin:.2em 0}
.cf-head__type{font-size:.8em;text-transform:uppercase;font-weight:700;color:#555}
.cf-summary{background:var(--cf-bg);padding:.7em 1em;border-radius:8px}
.cf-pres{padding:.25em;border-radius:4px;border:1px solid #b8c2c9}
.cf-pres--present{background:#e2f2e8}
.cf-pres--absent{background:#f6e3e2}
.cf-pres--excuse{background:#fdf0dc}
.cf-slot-row{display:grid;grid-template-columns:10em 7em 7em 1fr auto;gap:.4em;margin-bottom:.4em}
.cf-slot-row input{padding:.4em;border:1px solid #b8c2c9;border-radius:6px;font:inherit}
.cf-copy{width:100%;padding:.5em;font:inherit;border:1px solid #b8c2c9;border-radius:6px}
.cf-sticky{position:sticky;bottom:0;background:#fff;padding:.6em 0;margin:0}
.cf-docs li{margin-bottom:.4em}
.cf-agenda__nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6em}
.cf-agenda__title{margin:0;text-transform:capitalize}
.cf-agenda__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--cf-border);border-left:1px solid var(--cf-border)}
.cf-agenda__dow{font-size:.75em;font-weight:700;text-transform:uppercase;padding:.35em;background:var(--cf-bg);border-right:1px solid var(--cf-border);border-bottom:1px solid var(--cf-border);text-align:center}
.cf-agenda__day{min-width:0;min-height:5.5em;padding:.3em;border-right:1px solid var(--cf-border);border-bottom:1px solid var(--cf-border);position:relative;font-size:.85em}
.cf-agenda__day.is-out{background:#fafafa;color:#aaa}
.cf-agenda__day.is-today .cf-agenda__num{background:var(--cf-main);color:#fff;border-radius:50%;padding:0 .35em}
.cf-agenda__ev{display:block;margin-top:.25em;padding:.15em .35em;border-radius:4px;background:var(--c);color:#fff;font-size:.82em;line-height:1.25;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px rgba(0,0,0,.35)}
.cf-agenda__ev:hover,.cf-agenda__ev:focus{white-space:normal;outline:2px solid #222}
.cf-tip{position:absolute;z-index:50;background:#222;color:#fff;padding:.6em .8em;border-radius:6px;font-size:.85em;max-width:280px;pointer-events:none;box-shadow:0 4px 12px rgba(0,0,0,.25)}
.cf-legend{display:flex;flex-wrap:wrap;gap:.4em 1em;margin-top:.8em;font-size:.82em}
.cf-legend__item{display:flex;align-items:center;gap:.35em}
.cf-legend__item i{display:inline-block;width:.9em;height:.9em;border-radius:3px}
@media (max-width:640px){
 .cf-agenda__day{min-height:3.6em;font-size:.75em}
 .cf-agenda__ev{font-size:0;height:.55em;padding:0;margin-top:.2em}
 .cf-slot-row{grid-template-columns:1fr 1fr 1fr;}
 .cf-slot-row input[type=text]{grid-column:1/3}
}
.cf-agenda__list{margin-top:1em;padding-left:1.1em}
.cf-agenda__list li{margin-bottom:.3em}
.cf-box{border:1px solid var(--cf-border);border-radius:8px;padding:.8em 1em;margin:1em 0}
.cf-box summary{cursor:pointer}
.cf-filters select, .cf-form select, .cf-form input { max-width: 100%; }
.cf-vide { text-align: center; color: #666; }
