/* Sélecteur commun V10, V12 et public. Valeurs complètes sans thème à variables.
   Les jetons SS sont résolus au champ, puis conservés par le dialogue partagé. */
.pw-date
{
	--pw-date-surface: var(--cp_surface, rgb(var(--fld_bg_rgb, 255, 255, 255)));
	--pw-date-text: var(--cp_text, rgb(var(--fld_text_rgb, 36, 54, 64)));
	--pw-date-muted: var(--cp_text_soft, rgb(var(--fld_placeholder_rgb, 99, 116, 126)));
	--pw-date-line: var(--cp_border, rgb(var(--fld_border_rgb, 210, 221, 227)));
	--pw-date-accent: var(--cp_buttons, rgb(var(--bt_bg_rgb, var(--accent_rgb, 18, 115, 156))));
	--pw-date-on-accent: rgb(var(--bt_text_rgb, 255, 255, 255));
	--pw-date-soft: var(--ff_o_bg, color-mix(in srgb, var(--pw-date-accent) 9%, var(--pw-date-surface)));
	--pw-date-danger: #b72c3b;
	--pw-date-font: var(--fld_font_family, Arial, Helvetica, sans-serif);
	--pw-date-radius: 7px;
	--pw-date-target: 34px;
}
.site_dark .pw-date
{
	--pw-date-danger: #ffacb2;
}
.pw-date-field:not(.pw-date-management)
{
	display: inline-flex;
	position: relative;
	align-items: stretch;
	max-width: 100%;
	vertical-align: middle;
}
.pw-date-field:not(.pw-date-management)>input:not([type=hidden])
{
	min-width: 0;
	max-width: 100%;
	width: calc(var(--pw-date-chars, 10) * 1ch + 58px);
	padding-right: 42px;
	box-sizing: border-box;
}
.pw-date-field:not(.pw-date-management)>button.pw-date-trigger
{
	appearance: none;
	position: absolute;
	inset: 1px 1px 1px auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	min-width: 0;
	min-height: 0;
	height: auto;
	margin: 0;
	padding: 5px;
	border: 0;
	border-left: 1px solid var(--pw-date-line);
	border-radius: 0 var(--pw-date-radius) var(--pw-date-radius) 0;
	background: transparent;
	box-shadow: none;
	color: var(--pw-date-accent);
	cursor: pointer;
}
/* La gestion conserve ses dimensions, positions, icônes et états V10/V12. */
.pw-date.pw-date-management
{
	--pw-date-surface: var(--cp_surface, var(--cp_bg));
	--pw-date-text: var(--cp_text);
	--pw-date-muted: var(--cp_text_soft, var(--cp_title));
	--pw-date-line: var(--cp_border, var(--cp_separator));
	--pw-date-accent: var(--cp_buttons);
	--pw-date-on-accent: var(--cp_text_color2);
	--pw-date-soft: var(--ff_o_bg);
	--pw-date-danger: var(--cp_negative);
	--pw-date-radius: var(--radius_l, 4px);
}
.pw-date-management>button.bt_date
{
	appearance: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}
.pw-date-management>button.bt_date:disabled { cursor: default; }
/* Atténuer l'icône sans écraser l'opacité de survol et de focus du thème. */
.pw-date-management>button.bt_date:disabled::before { opacity: .45; }
.pw-date-trigger svg { width: 20px; height: 20px; pointer-events: none; }
.pw-date-field:not(.pw-date-management)>.pw-date-trigger:disabled { opacity: .45; cursor: default; }
.pw-date-error { display: block; color: #b72c3b; font-size: 12px; line-height: 1.4; }
.pw-date-error:empty { display: none; }
.pw-date-field>input[aria-invalid=true], .pw-date-field>select[aria-invalid=true] { outline: 1px solid var(--pw-date-danger); }
.pw-date-field .pw-date-now[hidden] { display: none; }
dialog.pw-date-picker, section.pw-date-picker
{
	position: fixed;
	box-sizing: border-box;
	width: 326px;
	max-width: calc(100vw - 16px);
	max-height: calc(100dvh - 16px);
	inset: auto;
	margin: 0;
	padding: 14px;
	overflow: auto;
	overscroll-behavior: contain;
	border: 1px solid var(--pw-date-line);
	border-radius: var(--pw-date-radius);
	background: var(--pw-date-surface);
	color: var(--pw-date-text);
	box-shadow: 0 12px 50px #152c4033;
	font: normal 13px/1.4 var(--pw-date-font);
	text-align: left;
	text-transform: none;
	letter-spacing: normal;
	touch-action: manipulation;
}
dialog.pw-date-picker::backdrop { background: #172d421c; }
.pw-date-picker *, .pw-date-picker *::before, .pw-date-picker *::after { box-sizing: border-box; }
.pw-date-picker button, .pw-date-picker input
{
	appearance: auto;
	display: inline-block;
	position: static;
	float: none;
	width: auto;
	min-width: 0;
	min-height: var(--pw-date-target);
	height: auto;
	max-width: 100%;
	margin: 0;
	padding: 6px 10px;
	border: 1px solid var(--pw-date-line);
	border-radius: 5px;
	background: var(--pw-date-surface);
	background-image: none;
	box-shadow: none;
	color: var(--pw-date-text);
	font: inherit;
	text-transform: none;
	letter-spacing: normal;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
	vertical-align: middle;
	opacity: 1;
}
.pw-date-picker button { cursor: pointer; }
/* Les anciens thèmes publics étirent tous les boutons sous 640 px. */
.pw-date-picker.pw-date button { width: auto; min-width: 0; max-width: 100%; }
.pw-date-picker button::before, .pw-date-picker button::after { content: none; }
.pw-date-picker button:disabled { cursor: default; opacity: .4; }
.pw-date-picker button:hover:where(:not(:disabled):not([aria-disabled=true])) { background: var(--pw-date-soft); }
.pw-date-picker button:focus-visible, .pw-date-picker input:focus-visible, .pw-date-trigger:focus-visible
{
	outline: 2px solid var(--pw-date-accent);
	outline-offset: 2px;
}
.pw-date-nav, .pw-date-year, .pw-date-actions, .pw-date-shortcuts, .pw-date-range, .pw-date-time
{
	display: flex;
	align-items: center;
	gap: 7px;
}
.pw-date-nav>button.pw-date-close { border-color: transparent; font-size: 20px; padding: 0 9px; }
.pw-date-nav { justify-content: space-between; margin-bottom: 10px; }
.pw-date-picker .pw-date-nav>button { min-width: var(--pw-date-target); }
.pw-date-nav>button.pw-date-title { flex: 1; border-color: transparent; text-transform: capitalize; font-weight: bold; }
.pw-date-picker table.pw-date-grid
{
	display: table;
	width: 100%;
	table-layout: fixed;
	border-collapse: collapse;
	border-spacing: 0;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	font: inherit;
}
.pw-date-grid thead { display: table-header-group; }
.pw-date-grid tbody { display: table-row-group; }
.pw-date-grid tr { display: table-row; background: transparent; border: 0; }
.pw-date-picker .pw-date-grid th, .pw-date-picker .pw-date-grid td
{
	display: table-cell;
	position: static;
	float: none;
	width: auto;
	height: auto;
	margin: 0;
	padding: 1px;
	border: 0;
	background: transparent;
	color: inherit;
	text-align: center;
	font: inherit;
}
.pw-date-picker .pw-date-grid th { font-size: 11px; font-weight: normal; color: var(--pw-date-muted); height: 26px; }
.pw-date-picker .pw-date-grid button
{
	display: block;
	width: 100%;
	height: var(--pw-date-target);
	min-height: var(--pw-date-target);
	padding: 0;
	border-color: transparent;
	background: transparent;
	font-size: 12px;
	font-variant-numeric: tabular-nums;
}
.pw-date-picker .pw-date-grid button.outside { opacity: .5; }
.pw-date-picker .pw-date-grid button.today { border-color: var(--pw-date-accent); }
.pw-date-picker .pw-date-grid button[aria-disabled=true] { opacity: .4; text-decoration: line-through; cursor: not-allowed; }
/* Le survol doit primer sur le fond transparent de la grille publique. */
.pw-date-picker:not(.pw-date-management) .pw-date-grid button:hover:where(:not(:disabled):not([aria-disabled=true]):not(.selected)) { background: var(--pw-date-soft); }
.pw-date-picker .pw-date-grid td.in-range { background: var(--pw-date-soft); }
.pw-date-picker button.selected, .pw-date-picker button.pw-date-apply,
.pw-date-picker button.selected:hover, .pw-date-picker button.pw-date-apply:hover
{
	background: var(--pw-date-accent);
	color: var(--pw-date-on-accent);
	border-color: transparent;
}
.pw-date-periods { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.pw-date-periods>button { min-height: 44px; text-transform: capitalize; }
.pw-date-year { margin-bottom: 12px; align-items: flex-end; }
.pw-date-year label { flex: 1; margin: 0; min-width: 0; font: inherit; }
.pw-date-year input { display: block; width: 100%; margin-top: 4px; }
.pw-date-range { margin-bottom: 12px; }
.pw-date-range button { flex: 1; font-size: 11px; }
.pw-date-range small { display: block; font-size: 10px; }
.pw-date-time { align-items: flex-end; flex-wrap: wrap; padding-top: 12px; margin-top: 12px; border-top: 1px solid var(--pw-date-line); }
.pw-date-time-part { flex: 1 1 132px; min-width: 0; }
.pw-date-time label { display: block; font: normal 12px/1.4 var(--pw-date-font); margin: 0 0 5px; }
.pw-date-stepper { display: flex; align-items: stretch; border: 1px solid var(--pw-date-line); border-radius: 5px; background: var(--pw-date-surface); }
.pw-date-picker .pw-date-stepper>input
{
	appearance: textfield;
	-moz-appearance: textfield;
	display: block;
	flex: 1;
	width: 0;
	min-width: 2ch;
	padding: 4px;
	border: 0;
	background: transparent;
	text-align: center;
}
.pw-date-stepper>input::-webkit-inner-spin-button, .pw-date-stepper>input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.pw-date-picker .pw-date-stepper>button
{
	flex: 0 0 var(--pw-date-target);
	width: var(--pw-date-target);
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--pw-date-accent);
	font-size: 20px;
}
.pw-date-stepper>button:last-child { border-radius: 0 4px 4px 0; }
.pw-date-picker .pw-date-stepper>button:hover:where(:not(:disabled)) { background: var(--pw-date-soft); }
.pw-date-picker .pw-date-status { margin: 12px 0; padding: 0; min-height: 16px; font: normal 11px/1.5 var(--pw-date-font); color: var(--pw-date-muted); }
.pw-date-picker .pw-date-status.error { color: var(--pw-date-danger); }
.pw-date-picker .pw-date-status:empty { display: none; }
.pw-date-shortcuts { flex-wrap: wrap; padding-top: 10px; border-top: 1px solid var(--pw-date-line); }
.pw-date-shortcuts button { font-size: 11px; padding: 5px 8px; }
.pw-date-actions { justify-content: flex-end; position: sticky; bottom: -14px; padding: 12px 0 4px; margin-top: 12px; border-top: 1px solid var(--pw-date-line); background: var(--pw-date-surface); }
.pw-date-actions button { font-size: 12px; }
.pw-date-actions .pw-date-clear { margin-right: auto; color: var(--pw-date-danger); }
.pw-date-picker .pw-date-sr { position: absolute; clip: rect(0,0,0,0); width: 1px; height: 1px; overflow: hidden; white-space: nowrap; }
section.pw-date-picker.pw-date-inline { position: relative; max-width: 100%; max-height: none; box-shadow: none; margin: 8px 0; }
dialog.pw-date-picker.pw-date-sheet
{
	--pw-date-target: 44px;
	position: fixed;
	inset: auto 0 0;
	width: 100%;
	max-width: 100%;
	max-height: 88dvh;
	border-radius: 14px 14px 0 0;
	padding: 14px max(14px, calc((100vw - 430px)/2), env(safe-area-inset-right))
		max(14px, env(safe-area-inset-bottom)) max(14px, calc((100vw - 430px)/2), env(safe-area-inset-left));
}
.pw-date-sheet .pw-date-grid td { padding: 0; }
@media(pointer: coarse)
{
	.pw-date { --pw-date-target: 44px; }
	dialog.pw-date-picker, section.pw-date-picker { width: 356px; }
	.pw-date-field:not(.pw-date-management)>input:not([type=hidden]), .pw-date-field>select { min-height: 44px; }
	.pw-date-field:not(.pw-date-management)>button.pw-date-trigger { width: 44px; }
	.pw-date-field:not(.pw-date-management)>input:not([type=hidden]) { padding-right: 48px; }
}
@media(forced-colors: active)
{
	.pw-date-picker button.selected { outline: 2px solid Highlight; outline-offset: -3px; }
}

/* Commandes horaires liées : la limite de début est visible sans changer le champ time. */
.cff_time [aria-disabled=true] { opacity: .4; cursor: default; }

/* La fenêtre reprend les surfaces et outils de la gestion; V10 fournit les replis. */
.pw-date-picker.pw-date-management
{
	box-shadow: var(--elev_2, 0 2px 6px #0003);
	font-size: var(--font_s3);
}
.pw-date-picker.pw-date-management::backdrop { background: var(--overlay_bg, rgba(0,0,0,.2)); }
.pw-date-management.pw-date-picker button { border-radius: var(--radius_s, 3px); }
.pw-date-management.pw-date-picker button:not(.selected):not(.pw-date-apply):not(.pw-date-clear) { color: var(--cp_buttons); }
.pw-date-management.pw-date-picker button:hover:where(:not(:disabled):not([aria-disabled=true]):not(.selected):not(.pw-date-apply))
{
	background: var(--cp_buttons_o_bg);
	color: var(--cp_buttons_o);
}
.pw-date-management .pw-date-range button { font-size: var(--font_s3); }
.pw-date-management .pw-date-range small { font-size: var(--font_s1); }
.pw-date-management.pw-date-picker .pw-date-grid button { font-size: var(--font_s3); }
.pw-date-management.pw-date-picker .pw-date-grid th,
.pw-date-management.pw-date-picker .pw-date-status { font-size: var(--font_s1); }
.pw-date-management .pw-date-stepper, .pw-date-management .pw-date-year input
{
	border-color: transparent;
	border-radius: var(--radius_s, 3px);
	background: var(--ff_bg);
	box-shadow: var(--ff_edge, inset 0 0 2px #0005);
	color: var(--ff_text);
}
.pw-date-management .pw-date-stepper>input { color: var(--ff_text); }
.pw-date-management .pw-date-stepper:focus-within { background: var(--ff_focus_bg); }
.pw-date-management .pw-date-time label { font-size: var(--font_s2); color: var(--cp_text); }
.pw-date-management .pw-date-actions button { font-size: var(--font_s3); }
.pw-date-picker.pw-date-management.pw-date-sheet { border-radius: var(--pw-date-radius) var(--pw-date-radius) 0 0; }
.touch .pw-date-picker:not(.pw-date-sheet) { --pw-date-target: 44px; width: 356px; }

/* Navigation intégrée : le mois et les jours se fondent dans le volet V10/V12. */
section.pw-date-picker.pw-date-inline.pw-date-navigation
{
	width: 100%;
	margin: 0;
	padding: 8px;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}
.pw-date-navigation .pw-date-nav { gap: 4px; margin-bottom: 4px; }
.pw-date-navigation .pw-date-nav>button,
.pw-date-navigation .pw-date-periods>button:where(:not(.selected)),
.pw-date-navigation .pw-date-year>button
{
	border-color: transparent;
	background: transparent;
}
.pw-date-picker.pw-date-management.pw-date-navigation .pw-date-nav>button.designlink
{
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--pw-date-target);
	border: 0;
	border-radius: var(--radius_s, 0);
	color: var(--cp_links);
	text-align: center;
}
.pw-date-picker.pw-date-management.pw-date-navigation .pw-date-nav>button.designlink:hover
{
	background: var(--cp_buttons_o_bg);
	color: var(--cp_buttons_o);
}
.touch .pw-date-picker.pw-date-management.pw-date-navigation .pw-date-nav>button.designlink { border-radius: 0; }
.pw-date-picker.pw-date-management.pw-date-navigation .pw-date-year input { min-height: var(--pw-date-target); }

@media(max-width: 600px)
{
	section.pw-date-picker.pw-date-inline.pw-date-navigation
	{
		padding-left: max(14px, env(safe-area-inset-left));
		padding-right: max(14px, env(safe-area-inset-right));
	}
}

/* Le volet reste dense à la souris; le mode tactile garde ses cibles de 44 px. */
@media(pointer: fine)
{
	html:not(.touch) .pw-date-navigation { --pw-date-target: 28px; }
	html:not(.touch) .pw-date-navigation .pw-date-nav>button,
	html:not(.touch) .pw-date-navigation .pw-date-periods>button,
	html:not(.touch) .pw-date-navigation .pw-date-year>button,
	html:not(.touch) .pw-date-navigation .pw-date-year input
	{
		min-height: var(--pw-date-target);
		padding: 3px 8px;
	}
}

/* Un repère tarifaire complète le libellé accessible sans remplacer la disponibilité. */
.pw-date-picker .pw-date-grid button.pw-date-special[aria-disabled="false"]:where(:not(.selected):not(:hover))
{
	background: color-mix(in srgb, #3b90c9 16%, var(--pw-date-surface));
}
.pw-date-day-legend { margin:.5em 0; font-size:12px; line-height:1.4; }
.tkttkg-tariff-legend { margin:.5em 0; font-size:.9em; }
.tkttkg-tariff-legend::before { content:"• "; color:inherit; font-weight:bold; }
.tkttkg-visit-messages { margin:.75em 0; white-space:pre-line; }
.tkttkg-visit-messages:empty { display:none; }
.tkttkg-visit-message { margin:.4em 0; }
