/* Variables declaration */
.rdp-root {
  --rdp-accent-color: blue; /* The accent color used for selected days and UI elements. */
  --rdp-accent-background-color: #f0f0ff; /* The accent background color used for selected days and UI elements. */

  --rdp-day-height: 44px; /* The height of the day cells. */
  --rdp-day-width: 44px; /* The width of the day cells. */

  --rdp-day_button-border-radius: 100%; /* The border radius of the day cells. */
  --rdp-day_button-border: 2px solid transparent; /* The border of the day cells. */
  --rdp-day_button-height: 42px; /* The height of the day cells. */
  --rdp-day_button-width: 42px; /* The width of the day cells. */

  --rdp-selected-border: 2px solid var(--rdp-accent-color); /* The border of the selected days. */
  --rdp-disabled-opacity: 0.5; /* The opacity of the disabled days. */
  --rdp-outside-opacity: 0.75; /* The opacity of the days outside the current month. */
  --rdp-today-color: var(--rdp-accent-color); /* The color of the today's date. */

  --rdp-dropdown-gap: 0.5rem; /* The gap between the dropdowns used in the month captons. */

  --rdp-months-gap: 2rem; /* The gap between the months in the multi-month view. */

  --rdp-nav_button-disabled-opacity: 0.5; /* The opacity of the disabled navigation buttons. */
  --rdp-nav_button-height: 2.25rem; /* The height of the navigation buttons. */
  --rdp-nav_button-width: 2.25rem; /* The width of the navigation buttons. */
  --rdp-nav-height: 2.75rem; /* The height of the navigation bar. */

  --rdp-range_middle-background-color: var(--rdp-accent-background-color); /* The color of the background for days in the middle of a range. */
  --rdp-range_middle-color: inherit; /* The color of the range text. */

  --rdp-range_start-color: white; /* The color of the range text. */
  --rdp-range_start-background: linear-gradient(
    var(--rdp-gradient-direction),
    transparent 50%,
    var(--rdp-range_middle-background-color) 50%
  ); /* Used for the background of the start of the selected range. */
  --rdp-range_start-date-background-color: var(--rdp-accent-color); /* The background color of the date when at the start of the selected range. */

  --rdp-range_end-background: linear-gradient(
    var(--rdp-gradient-direction),
    var(--rdp-range_middle-background-color) 50%,
    transparent 50%
  ); /* Used for the background of the end of the selected range. */
  --rdp-range_end-color: white; /* The color of the range text. */
  --rdp-range_end-date-background-color: var(--rdp-accent-color); /* The background color of the date when at the end of the selected range. */

  --rdp-week_number-border-radius: 100%; /* The border radius of the week number. */
  --rdp-week_number-border: 2px solid transparent; /* The border of the week number. */

  --rdp-week_number-height: var(--rdp-day-height); /* The height of the week number cells. */
  --rdp-week_number-opacity: 0.75; /* The opacity of the week number. */
  --rdp-week_number-width: var(--rdp-day-width); /* The width of the week number cells. */
  --rdp-weeknumber-text-align: center; /* The text alignment of the weekday cells. */

  --rdp-weekday-opacity: 0.75; /* The opacity of the weekday. */
  --rdp-weekday-padding: 0.5rem 0rem; /* The padding of the weekday. */
  --rdp-weekday-text-align: center; /* The text alignment of the weekday cells. */

  --rdp-gradient-direction: 90deg;

  --rdp-animation_duration: 0.3s;
  --rdp-animation_timing: cubic-bezier(0.4, 0, 0.2, 1);
}

.rdp-root[dir="rtl"] {
  --rdp-gradient-direction: -90deg;
}

.rdp-root[data-broadcast-calendar="true"] {
  --rdp-outside-opacity: unset;
}

/* Root of the component. */
.rdp-root {
  position: relative; /* Required to position the navigation toolbar. */
  box-sizing: border-box;
}

.rdp-root * {
  box-sizing: border-box;
}

.rdp-day {
  width: var(--rdp-day-width);
  height: var(--rdp-day-height);
  text-align: center;
}

.rdp-day_button {
  background: none;
  padding: 0;
  margin: 0;
  cursor: pointer;
  font: inherit;
  color: inherit;
  justify-content: center;
  align-items: center;
  display: flex;

  width: var(--rdp-day_button-width);
  height: var(--rdp-day_button-height);
  border: var(--rdp-day_button-border);
  border-radius: var(--rdp-day_button-border-radius);
}

.rdp-day_button:disabled {
  cursor: revert;
}

.rdp-caption_label {
  z-index: 1;

  position: relative;
  display: inline-flex;
  align-items: center;

  white-space: nowrap;
  border: 0;
}

.rdp-dropdown:focus-visible ~ .rdp-caption_label {
  outline: 5px auto Highlight;
  /* biome-ignore lint/suspicious/noDuplicateProperties: backward compatibility */
  outline: 5px auto -webkit-focus-ring-color;
}

.rdp-button_next,
.rdp-button_previous {
  border: none;
  background: none;
  padding: 0;
  margin: 0;
  cursor: pointer;
  font: inherit;
  color: inherit;
  -moz-appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  appearance: none;

  width: var(--rdp-nav_button-width);
  height: var(--rdp-nav_button-height);
}

.rdp-button_next:disabled,
.rdp-button_next[aria-disabled="true"],
.rdp-button_previous:disabled,
.rdp-button_previous[aria-disabled="true"] {
  cursor: revert;

  opacity: var(--rdp-nav_button-disabled-opacity);
}

.rdp-chevron {
  display: inline-block;
  fill: var(--rdp-accent-color);
}

.rdp-root[dir="rtl"] .rdp-nav .rdp-chevron {
  transform: rotate(180deg);
  transform-origin: 50%;
}

.rdp-dropdowns {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--rdp-dropdown-gap);
}
.rdp-dropdown {
  z-index: 2;

  /* Reset */
  opacity: 0;
  appearance: none;
  position: absolute;
  inset-block-start: 0;
  inset-block-end: 0;
  inset-inline-start: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  cursor: inherit;
  border: none;
  line-height: inherit;
}

.rdp-dropdown_root {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.rdp-dropdown_root[data-disabled="true"] .rdp-chevron {
  opacity: var(--rdp-disabled-opacity);
}

.rdp-month_caption {
  display: flex;
  align-content: center;
  height: var(--rdp-nav-height);
  font-weight: bold;
  font-size: large;
}

.rdp-root[data-nav-layout="around"] .rdp-month,
.rdp-root[data-nav-layout="after"] .rdp-month {
  position: relative;
}

.rdp-root[data-nav-layout="around"] .rdp-month_caption {
  justify-content: center;
  margin-inline-start: var(--rdp-nav_button-width);
  margin-inline-end: var(--rdp-nav_button-width);
  position: relative;
}

.rdp-root[data-nav-layout="around"] .rdp-button_previous {
  position: absolute;
  inset-inline-start: 0;
  top: 0;
  height: var(--rdp-nav-height);
  display: inline-flex;
}

.rdp-root[data-nav-layout="around"] .rdp-button_next {
  position: absolute;
  inset-inline-end: 0;
  top: 0;
  height: var(--rdp-nav-height);
  display: inline-flex;
  justify-content: center;
}

.rdp-months {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: var(--rdp-months-gap);
  max-width: fit-content;
}

.rdp-month_grid {
  border-collapse: collapse;
}

.rdp-nav {
  position: absolute;
  inset-block-start: 0;
  inset-inline-end: 0;

  display: flex;
  align-items: center;

  height: var(--rdp-nav-height);
}

.rdp-weekday {
  opacity: var(--rdp-weekday-opacity);
  padding: var(--rdp-weekday-padding);
  font-weight: 500;
  font-size: smaller;
  text-align: var(--rdp-weekday-text-align);
  text-transform: var(--rdp-weekday-text-transform);
}

.rdp-week_number {
  opacity: var(--rdp-week_number-opacity);
  font-weight: 400;
  font-size: small;
  height: var(--rdp-week_number-height);
  width: var(--rdp-week_number-width);
  border: var(--rdp-week_number-border);
  border-radius: var(--rdp-week_number-border-radius);
  text-align: var(--rdp-weeknumber-text-align);
}

/* DAY MODIFIERS */
.rdp-today:not(.rdp-outside) {
  color: var(--rdp-today-color);
}

.rdp-selected {
  font-weight: bold;
  font-size: large;
}

.rdp-selected .rdp-day_button {
  border: var(--rdp-selected-border);
}

.rdp-outside {
  opacity: var(--rdp-outside-opacity);
}

.rdp-disabled:not(.rdp-selected) {
  opacity: var(--rdp-disabled-opacity);
}

.rdp-hidden {
  visibility: hidden;
  color: var(--rdp-range_start-color);
}

.rdp-range_start {
  background: var(--rdp-range_start-background);
}

.rdp-range_start .rdp-day_button {
  background-color: var(--rdp-range_start-date-background-color);
  color: var(--rdp-range_start-color);
}

.rdp-range_middle {
  background-color: var(--rdp-range_middle-background-color);
}

.rdp-range_middle .rdp-day_button {
  border: unset;
  border-radius: unset;
  color: var(--rdp-range_middle-color);
}

.rdp-range_end {
  background: var(--rdp-range_end-background);
  color: var(--rdp-range_end-color);
}

.rdp-range_end .rdp-day_button {
  color: var(--rdp-range_start-color);
  background-color: var(--rdp-range_end-date-background-color);
}

.rdp-range_start.rdp-range_end {
  background: revert;
}

.rdp-focusable {
  cursor: pointer;
}

@keyframes rdp-slide_in_left {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}

@keyframes rdp-slide_in_right {
  0% {
    transform: translateX(100%);
  }
  100% {
    transform: translateX(0);
  }
}

@keyframes rdp-slide_out_left {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}

@keyframes rdp-slide_out_right {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(100%);
  }
}

.rdp-weeks_before_enter {
  animation: rdp-slide_in_left var(--rdp-animation_duration)
    var(--rdp-animation_timing) forwards;
}

.rdp-weeks_before_exit {
  animation: rdp-slide_out_left var(--rdp-animation_duration)
    var(--rdp-animation_timing) forwards;
}

.rdp-weeks_after_enter {
  animation: rdp-slide_in_right var(--rdp-animation_duration)
    var(--rdp-animation_timing) forwards;
}

.rdp-weeks_after_exit {
  animation: rdp-slide_out_right var(--rdp-animation_duration)
    var(--rdp-animation_timing) forwards;
}

.rdp-root[dir="rtl"] .rdp-weeks_after_enter {
  animation: rdp-slide_in_left var(--rdp-animation_duration)
    var(--rdp-animation_timing) forwards;
}

.rdp-root[dir="rtl"] .rdp-weeks_before_exit {
  animation: rdp-slide_out_right var(--rdp-animation_duration)
    var(--rdp-animation_timing) forwards;
}

.rdp-root[dir="rtl"] .rdp-weeks_before_enter {
  animation: rdp-slide_in_right var(--rdp-animation_duration)
    var(--rdp-animation_timing) forwards;
}

.rdp-root[dir="rtl"] .rdp-weeks_after_exit {
  animation: rdp-slide_out_left var(--rdp-animation_duration)
    var(--rdp-animation_timing) forwards;
}

@keyframes rdp-fade_in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes rdp-fade_out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

.rdp-caption_after_enter {
  animation: rdp-fade_in var(--rdp-animation_duration)
    var(--rdp-animation_timing) forwards;
}

.rdp-caption_after_exit {
  animation: rdp-fade_out var(--rdp-animation_duration)
    var(--rdp-animation_timing) forwards;
}

.rdp-caption_before_enter {
  animation: rdp-fade_in var(--rdp-animation_duration)
    var(--rdp-animation_timing) forwards;
}

.rdp-caption_before_exit {
  animation: rdp-fade_out var(--rdp-animation_duration)
    var(--rdp-animation_timing) forwards;
}

/* required styles */

.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
	position: absolute;
	left: 0;
	top: 0;
	}
.leaflet-container {
	overflow: hidden;
	}
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow {
	-webkit-user-select: none;
	   -moz-user-select: none;
	        user-select: none;
	  -webkit-user-drag: none;
	}
/* Prevents IE11 from highlighting tiles in blue */
.leaflet-tile::selection {
	background: transparent;
}
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
.leaflet-safari .leaflet-tile {
	image-rendering: -webkit-optimize-contrast;
	}
/* hack that prevents hw layers "stretching" when loading new tiles */
.leaflet-safari .leaflet-tile-container {
	width: 1600px;
	height: 1600px;
	-webkit-transform-origin: 0 0;
	}
.leaflet-marker-icon,
.leaflet-marker-shadow {
	display: block;
	}
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
.leaflet-container .leaflet-overlay-pane svg {
	max-width: none !important;
	max-height: none !important;
	}
.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-shadow-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile {
	max-width: none !important;
	max-height: none !important;
	width: auto;
	padding: 0;
	}

.leaflet-container img.leaflet-tile {
	/* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */
	mix-blend-mode: plus-lighter;
}

.leaflet-container.leaflet-touch-zoom {
	-ms-touch-action: pan-x pan-y;
	touch-action: pan-x pan-y;
	}
.leaflet-container.leaflet-touch-drag {
	-ms-touch-action: pinch-zoom;
	/* Fallback for FF which doesn't support pinch-zoom */
	touch-action: none;
	touch-action: pinch-zoom;
}
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
	-ms-touch-action: none;
	touch-action: none;
}
.leaflet-container {
	-webkit-tap-highlight-color: transparent;
}
.leaflet-container a {
	-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
}
.leaflet-tile {
	filter: inherit;
	visibility: hidden;
	}
.leaflet-tile-loaded {
	visibility: inherit;
	}
.leaflet-zoom-box {
	width: 0;
	height: 0;
	-moz-box-sizing: border-box;
	     box-sizing: border-box;
	z-index: 800;
	}
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
.leaflet-overlay-pane svg {
	-moz-user-select: none;
	}

.leaflet-pane         { z-index: 400; }

.leaflet-tile-pane    { z-index: 200; }
.leaflet-overlay-pane { z-index: 400; }
.leaflet-shadow-pane  { z-index: 500; }
.leaflet-marker-pane  { z-index: 600; }
.leaflet-tooltip-pane   { z-index: 650; }
.leaflet-popup-pane   { z-index: 700; }

.leaflet-map-pane canvas { z-index: 100; }
.leaflet-map-pane svg    { z-index: 200; }

.leaflet-vml-shape {
	width: 1px;
	height: 1px;
	}
.lvml {
	behavior: url(#default#VML);
	display: inline-block;
	position: absolute;
	}


/* control positioning */

.leaflet-control {
	position: relative;
	z-index: 800;
	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
	pointer-events: auto;
	}
.leaflet-top,
.leaflet-bottom {
	position: absolute;
	z-index: 1000;
	pointer-events: none;
	}
.leaflet-top {
	top: 0;
	}
.leaflet-right {
	right: 0;
	}
.leaflet-bottom {
	bottom: 0;
	}
.leaflet-left {
	left: 0;
	}
.leaflet-control {
	float: left;
	clear: both;
	}
.leaflet-right .leaflet-control {
	float: right;
	}
.leaflet-top .leaflet-control {
	margin-top: 10px;
	}
.leaflet-bottom .leaflet-control {
	margin-bottom: 10px;
	}
.leaflet-left .leaflet-control {
	margin-left: 10px;
	}
.leaflet-right .leaflet-control {
	margin-right: 10px;
	}


/* zoom and fade animations */

.leaflet-fade-anim .leaflet-popup {
	opacity: 0;
	-webkit-transition: opacity 0.2s linear;
	   -moz-transition: opacity 0.2s linear;
	        transition: opacity 0.2s linear;
	}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
	opacity: 1;
	}
.leaflet-zoom-animated {
	-webkit-transform-origin: 0 0;
	    -ms-transform-origin: 0 0;
	        transform-origin: 0 0;
	}
svg.leaflet-zoom-animated {
	will-change: transform;
}

.leaflet-zoom-anim .leaflet-zoom-animated {
	-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
	   -moz-transition:    -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
	        transition:         transform 0.25s cubic-bezier(0,0,0.25,1);
	}
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile {
	-webkit-transition: none;
	   -moz-transition: none;
	        transition: none;
	}

.leaflet-zoom-anim .leaflet-zoom-hide {
	visibility: hidden;
	}


/* cursors */

.leaflet-interactive {
	cursor: pointer;
	}
.leaflet-grab {
	cursor: -webkit-grab;
	cursor:    -moz-grab;
	cursor:         grab;
	}
.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive {
	cursor: crosshair;
	}
.leaflet-popup-pane,
.leaflet-control {
	cursor: auto;
	}
.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive,
.leaflet-dragging .leaflet-marker-draggable {
	cursor: move;
	cursor: -webkit-grabbing;
	cursor:    -moz-grabbing;
	cursor:         grabbing;
	}

/* marker & overlays interactivity */
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane > svg path,
.leaflet-tile-container {
	pointer-events: none;
	}

.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane > svg path.leaflet-interactive,
svg.leaflet-image-layer.leaflet-interactive path {
	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
	pointer-events: auto;
	}

/* visual tweaks */

.leaflet-container {
	background: #ddd;
	outline-offset: 1px;
	}
.leaflet-container a {
	color: #0078A8;
	}
.leaflet-zoom-box {
	border: 2px dotted #38f;
	background: rgba(255,255,255,0.5);
	}


/* general typography */
.leaflet-container {
	font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-size: 0.75rem;
	line-height: 1.5;
	}


/* general toolbar styles */

.leaflet-bar {
	box-shadow: 0 1px 5px rgba(0,0,0,0.65);
	border-radius: 4px;
	}
.leaflet-bar a {
	background-color: #fff;
	border-bottom: 1px solid #ccc;
	width: 26px;
	height: 26px;
	line-height: 26px;
	display: block;
	text-align: center;
	text-decoration: none;
	color: black;
	}
.leaflet-bar a,
.leaflet-control-layers-toggle {
	background-position: 50% 50%;
	background-repeat: no-repeat;
	display: block;
	}
.leaflet-bar a:hover,
.leaflet-bar a:focus {
	background-color: #f4f4f4;
	}
.leaflet-bar a:first-child {
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
	}
.leaflet-bar a:last-child {
	border-bottom-left-radius: 4px;
	border-bottom-right-radius: 4px;
	border-bottom: none;
	}
.leaflet-bar a.leaflet-disabled {
	cursor: default;
	background-color: #f4f4f4;
	color: #bbb;
	}

.leaflet-touch .leaflet-bar a {
	width: 30px;
	height: 30px;
	line-height: 30px;
	}
.leaflet-touch .leaflet-bar a:first-child {
	border-top-left-radius: 2px;
	border-top-right-radius: 2px;
	}
.leaflet-touch .leaflet-bar a:last-child {
	border-bottom-left-radius: 2px;
	border-bottom-right-radius: 2px;
	}

/* zoom control */

.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
	font: bold 18px 'Lucida Console', Monaco, monospace;
	text-indent: 1px;
	}

.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out  {
	font-size: 22px;
	}


/* layers control */

.leaflet-control-layers {
	box-shadow: 0 1px 5px rgba(0,0,0,0.4);
	background: #fff;
	border-radius: 5px;
	}
.leaflet-control-layers-toggle {
	background-image: none;
	width: 36px;
	height: 36px;
	}
.leaflet-retina .leaflet-control-layers-toggle {
	background-image: none;
	background-size: 26px 26px;
	}
.leaflet-touch .leaflet-control-layers-toggle {
	width: 44px;
	height: 44px;
	}
.leaflet-control-layers .leaflet-control-layers-list,
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
	display: none;
	}
.leaflet-control-layers-expanded .leaflet-control-layers-list {
	display: block;
	position: relative;
	}
.leaflet-control-layers-expanded {
	padding: 6px 10px 6px 6px;
	color: #333;
	background: #fff;
	}
.leaflet-control-layers-scrollbar {
	overflow-y: scroll;
	overflow-x: hidden;
	padding-right: 5px;
	}
.leaflet-control-layers-selector {
	margin-top: 2px;
	position: relative;
	top: 1px;
	}
.leaflet-control-layers label {
	display: block;
	font-size: 13px;
	font-size: 1.08333em;
	}
.leaflet-control-layers-separator {
	height: 0;
	border-top: 1px solid #ddd;
	margin: 5px -10px 5px -6px;
	}

/* Default icon URLs */
.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */
	background-image: none;
	}


/* attribution and scale controls */

.leaflet-container .leaflet-control-attribution {
	background: #fff;
	background: rgba(255, 255, 255, 0.8);
	margin: 0;
	}
.leaflet-control-attribution,
.leaflet-control-scale-line {
	padding: 0 5px;
	color: #333;
	line-height: 1.4;
	}
.leaflet-control-attribution a {
	text-decoration: none;
	}
.leaflet-control-attribution a:hover,
.leaflet-control-attribution a:focus {
	text-decoration: underline;
	}
.leaflet-attribution-flag {
	display: inline !important;
	vertical-align: baseline !important;
	width: 1em;
	height: 0.6669em;
	}
.leaflet-left .leaflet-control-scale {
	margin-left: 5px;
	}
.leaflet-bottom .leaflet-control-scale {
	margin-bottom: 5px;
	}
.leaflet-control-scale-line {
	border: 2px solid #777;
	border-top: none;
	line-height: 1.1;
	padding: 2px 5px 1px;
	white-space: nowrap;
	-moz-box-sizing: border-box;
	     box-sizing: border-box;
	background: rgba(255, 255, 255, 0.8);
	text-shadow: 1px 1px #fff;
	}
.leaflet-control-scale-line:not(:first-child) {
	border-top: 2px solid #777;
	border-bottom: none;
	margin-top: -2px;
	}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
	border-bottom: 2px solid #777;
	}

.leaflet-touch .leaflet-control-attribution,
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	box-shadow: none;
	}
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	border: 2px solid rgba(0,0,0,0.2);
	background-clip: padding-box;
	}


/* popup */

.leaflet-popup {
	position: absolute;
	text-align: center;
	margin-bottom: 20px;
	}
.leaflet-popup-content-wrapper {
	padding: 1px;
	text-align: left;
	border-radius: 12px;
	}
.leaflet-popup-content {
	margin: 13px 24px 13px 20px;
	line-height: 1.3;
	font-size: 13px;
	font-size: 1.08333em;
	min-height: 1px;
	}
.leaflet-popup-content p {
	margin: 17px 0;
	margin: 1.3em 0;
	}
.leaflet-popup-tip-container {
	width: 40px;
	height: 20px;
	position: absolute;
	left: 50%;
	margin-top: -1px;
	margin-left: -20px;
	overflow: hidden;
	pointer-events: none;
	}
.leaflet-popup-tip {
	width: 17px;
	height: 17px;
	padding: 1px;

	margin: -10px auto 0;
	pointer-events: auto;

	-webkit-transform: rotate(45deg);
	   -moz-transform: rotate(45deg);
	    -ms-transform: rotate(45deg);
	        transform: rotate(45deg);
	}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
	background: white;
	color: #333;
	box-shadow: 0 3px 14px rgba(0,0,0,0.4);
	}
.leaflet-container a.leaflet-popup-close-button {
	position: absolute;
	top: 0;
	right: 0;
	border: none;
	text-align: center;
	width: 24px;
	height: 24px;
	font: 16px/24px Tahoma, Verdana, sans-serif;
	color: #757575;
	text-decoration: none;
	background: transparent;
	}
.leaflet-container a.leaflet-popup-close-button:hover,
.leaflet-container a.leaflet-popup-close-button:focus {
	color: #585858;
	}
.leaflet-popup-scrolled {
	overflow: auto;
	}

.leaflet-oldie .leaflet-popup-content-wrapper {
	-ms-zoom: 1;
	}
.leaflet-oldie .leaflet-popup-tip {
	width: 24px;
	margin: 0 auto;

	-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
	filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
	}

.leaflet-oldie .leaflet-control-zoom,
.leaflet-oldie .leaflet-control-layers,
.leaflet-oldie .leaflet-popup-content-wrapper,
.leaflet-oldie .leaflet-popup-tip {
	border: 1px solid #999;
	}


/* div icon */

.leaflet-div-icon {
	background: #fff;
	border: 1px solid #666;
	}


/* Tooltip */
/* Base styles for the element that has a tooltip */
.leaflet-tooltip {
	position: absolute;
	padding: 6px;
	background-color: #fff;
	border: 1px solid #fff;
	border-radius: 3px;
	color: #222;
	white-space: nowrap;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	pointer-events: none;
	box-shadow: 0 1px 3px rgba(0,0,0,0.4);
	}
.leaflet-tooltip.leaflet-interactive {
	cursor: pointer;
	pointer-events: auto;
	}
.leaflet-tooltip-top:before,
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	position: absolute;
	pointer-events: none;
	border: 6px solid transparent;
	background: transparent;
	content: "";
	}

/* Directions */

.leaflet-tooltip-bottom {
	margin-top: 6px;
}
.leaflet-tooltip-top {
	margin-top: -6px;
}
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-top:before {
	left: 50%;
	margin-left: -6px;
	}
.leaflet-tooltip-top:before {
	bottom: 0;
	margin-bottom: -12px;
	border-top-color: #fff;
	}
.leaflet-tooltip-bottom:before {
	top: 0;
	margin-top: -12px;
	margin-left: -6px;
	border-bottom-color: #fff;
	}
.leaflet-tooltip-left {
	margin-left: -6px;
}
.leaflet-tooltip-right {
	margin-left: 6px;
}
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	top: 50%;
	margin-top: -6px;
	}
.leaflet-tooltip-left:before {
	right: 0;
	margin-right: -12px;
	border-left-color: #fff;
	}
.leaflet-tooltip-right:before {
	left: 0;
	margin-left: -12px;
	border-right-color: #fff;
	}

/* Printing */

@media print {
	/* Prevent printers from removing background-images of controls. */
	.leaflet-control {
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
		}
	}

@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&display=swap');
:root{--forest:#153e32;--forest-deep:#102e26;--green:#216e4e;--lime:#d0f68a;--text:#202c27;--muted:#718078;--border:#e7ece8;--canvas:#f6f8f6;--orange:#b56222;--white:#fff;--radius:15px}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--text);font-family:'Be Vietnam Pro',Arial,sans-serif;font-size:16px;line-height:1.55}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #79b457;outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600}svg{flex-shrink:0;vertical-align:middle}button svg{pointer-events:none}input,select{min-width:0;accent-color:var(--green)}small{font-size:14px}strong,b{font-weight:600}.app-shell{display:flex;min-height:100vh}.sidebar{width:252px;background:var(--forest-deep);color:#c8d5cf;position:fixed;inset:0 auto 0 0;padding:34px 19px 0;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;font-size:26px;font-weight:700;letter-spacing:-1px;color:white;gap:10px;padding:0 12px 36px}.brand-mark{display:inline-flex;align-items:center;justify-content:center;background:var(--lime);color:var(--forest);height:39px;width:39px;border-radius:11px;transform:rotate(-6deg)}.brand-mark svg{transform:rotate(6deg)}.brand-period{color:var(--lime);margin-left:-10px}.sidebar-caption{font-size:12px;letter-spacing:1.7px;font-weight:600;color:#9caea5;display:block;padding:0 13px 12px}.club-switch{display:flex;gap:10px;align-items:center;width:100%;padding:13px 11px;background:#ffffff08;border:1px solid #ffffff1a;border-radius:10px;color:#eef5f1;text-align:left;margin-bottom:26px}.club-switch>span:nth-child(2){flex:1;min-width:0}.club-switch strong{font-size:14px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.club-switch small{display:block;color:#a7bdb1;font-size:13px;margin-top:3px}.club-icon{width:33px;height:36px;background:#304e42;display:grid;place-items:center;border-radius:8px;color:var(--lime)}.nav-item{display:flex;align-items:center;gap:13px;width:100%;min-height:48px;border:none;background:transparent;color:#b5c8bd;padding:12px 14px;border-radius:8px;text-align:left;font-size:14px;margin-bottom:6px}.nav-item:hover{background:#ffffff09;color:#fff}.nav-item.active{background:var(--lime);color:#203b26;font-weight:600}.nav-item.active svg{stroke-width:2}.discover-caption{padding-top:31px;padding-bottom:15px}.nav-dot{width:6px;height:6px;border-radius:50%;background:#d3af6b;margin-left:auto}.mini-tag{font-size:10px;white-space:nowrap;border:1px solid #708875;border-radius:4px;padding:1px 3px;color:#bccdba;margin-left:auto}.nav-item.active .mini-tag{color:var(--forest);border-color:#709b45}.sidebar-bottom{margin-top:auto;padding-top:42px}.sidebar-tip{background:#234737;padding:18px 16px;border-radius:12px;position:relative;margin:0 6px 26px}.tip-icon{position:absolute;top:18px;right:15px;color:var(--lime)}.sidebar-tip strong{color:#eff8ed;line-height:1.8;font-size:14px}.sidebar-tip p{font-size:13px;color:#a9c4b2;margin:9px 0 16px;max-width:140px}.sidebar-tip button{display:flex;align-items:center;justify-content:space-between;border:0;border-top:1px solid #ffffff18;background:none;color:var(--lime);padding:12px 0 0;width:100%;font-size:13px}.profile{display:flex;gap:11px;align-items:center;width:100%;background:none;color:white;border:0;border-top:1px solid #ffffff16;padding:20px 4px}.profile>span:nth-child(2){flex:1;text-align:left}.profile strong{font-size:14px;display:block}.profile small{color:#9eb6a8;font-size:12px;display:block}.profile>svg{color:#9eb6a8}.main-shell{margin-left:252px;width:calc(100% - 252px)}.topbar{height:80px;padding:0 38px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--border)}.breadcrumb{display:flex;gap:13px;font-size:14px;color:#849087}.breadcrumb strong{font-weight:500;color:#384d40}.topbar-right{display:flex;align-items:center;gap:23px}.today-label{font-size:13px;color:#6c7a71}.top-divider{height:25px;width:1px;background:var(--border)}.top-account{border:0;background:none;display:flex;align-items:center;gap:10px}.main-content{padding:31px 38px 18px;max-width:1640px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:23px}.page-eyebrow{font-size:12px;font-weight:600;letter-spacing:1.7px;color:#819184;margin-bottom:5px}.page-heading h1{font-size:30px;letter-spacing:-1.1px;font-weight:600;line-height:1.6}.heading-dot{color:#4c8c49;padding-left:2px}.page-heading p{color:var(--muted);font-size:14px;margin-top:3px}.heading-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #dce3dc;background:white;min-height:42px;padding:10px 15px;border-radius:8px;white-space:nowrap;font-size:14px;font-weight:500}.button:hover{background:#edf3ed}.button.primary{background:var(--forest);border-color:var(--forest);color:white}.button.primary:hover{background:#246443}.button.lime{background:var(--lime);color:#223d25;border-color:var(--lime)}.month-control,.date-control{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #dce3dc;border-radius:8px;padding:8px 10px;min-height:42px;color:#5d6e61}.month-control input,.date-control input{border:0;background:none;max-width:145px;font-size:14px;color:#3c5041;outline:none}.demo-strip{display:flex;align-items:center;gap:8px;border:1px solid #e0e8d8;background:#f0f5e9;border-radius:8px;padding:9px 13px;color:#647654;font-size:13px;margin-bottom:21px}.demo-strip>span{flex:1}.demo-strip button{border:0;background:none;color:#43653a;display:flex;align-items:center;gap:5px;font-size:13px;font-weight:600;white-space:nowrap}.overview-banner{display:grid;grid-template-columns:1fr 1.1fr;background:var(--forest);border-radius:var(--radius);color:white;overflow:hidden;min-height:207px;margin-bottom:24px}.banner-copy{padding:25px 30px;background:linear-gradient(110deg,#214b37,#153e32)}.eyebrow{font-size:12px;letter-spacing:1.9px;font-weight:500}.banner-copy .eyebrow{color:#b5d093}.banner-copy h2{font-size:26px;line-height:1.35;letter-spacing:-.8px;margin-top:10px}.banner-copy p{font-size:13px;color:#bed0c3;margin-top:9px}.banner-link{display:flex;align-items:center;gap:5px;border:0;color:var(--lime);background:none;font-size:13px;padding:0;margin-top:15px}.next-session{border-left:1px solid #ffffff1a;margin:25px 0;padding:1px 28px;align-self:center}.next-label{font-size:11px;letter-spacing:1.7px;color:#bad0bd;display:flex;align-items:center;gap:8px}.live-dot{width:5px;height:5px;background:var(--lime);border-radius:50%}.next-session-title{display:flex;gap:22px;align-items:center;margin-top:17px}.big-day{font-size:43px;line-height:1;letter-spacing:-2px;font-weight:600;color:var(--lime);padding-right:22px;border-right:1px solid #ffffff25}.big-day>span{display:block;white-space:nowrap;font-size:10px;letter-spacing:1px;color:#b9cfbd;margin-top:9px}.next-session-title h3{font-size:16px;letter-spacing:-.3px;margin-bottom:5px}.next-session-title p{font-size:13px;color:#d1e0d4;display:flex;align-items:center;gap:6px;margin-top:6px}.next-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:22px;gap:10px}.avatar-stack{display:flex;align-items:center;padding-left:0}.avatar-stack .avatar{border:2px solid white;margin-left:-8px}.avatar-stack .avatar:first-child{margin-left:0}.avatar-stack>span:last-child:not(.avatar){margin-left:8px;color:#d2dfd3;font-size:12px;white-space:nowrap}.next-bottom .button{min-height:34px;font-size:12px;padding:7px 10px}.avatar{width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px;font-weight:600;letter-spacing:-.3px;background:#ecdfce;color:#865e36}.avatar.small{width:30px;height:30px;font-size:11px}.avatar.color-1{background:#e0e6ef;color:#52749a}.avatar.color-2{background:#e8e6d1;color:#717329}.avatar.color-3{background:#f0deda;color:#b07165}.avatar.color-4{background:#e5ddec;color:#8c6b9e}.avatar.color-5{background:#dceddf;color:#5a8664}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:26px}.stats-grid.three{grid-template-columns:repeat(3,1fr)}.stat{background:#fff;border:1px solid var(--border);border-radius:12px;padding:18px 19px 16px;min-width:0}.stat-label{display:flex;align-items:center;justify-content:space-between;color:#738176;font-size:13px;gap:6px}.stat-icon{height:32px;width:32px;display:grid;place-items:center;background:#f3f7f2;border-radius:9px;color:#5c8263}.stat>strong{font-size:25px;letter-spacing:-1px;display:block;margin:8px 0 11px;font-weight:600;line-height:1.3;white-space:nowrap}.stat strong small{font-size:14px;letter-spacing:0;color:#8c978e;font-weight:400}.stat-detail{display:flex;gap:5px;align-items:center;color:#7c8a7f;font-size:12px;min-height:16px}.stat.accent{background:#fbf8ef;border-color:#eee7d8}.stat.accent .stat-icon{background:#f5edd9;color:#a7803e}.stat.accent>strong{color:#8b6930}.stat.accent .stat-detail{color:#9a8051}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:23px;margin-bottom:24px;align-items:start}.panel{background:white;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:21px 23px 17px}.section-title h2{font-size:15px;letter-spacing:-.3px}.section-title p{font-size:12px;color:#8a958d;margin-top:5px}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:4px;background:none;border:0;color:#3d6948;font-size:13px;padding:7px 0;font-weight:500}.text-button:hover{text-decoration:underline}.badge{display:inline-flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap;font-size:11px;line-height:1.5;padding:4px 8px;border-radius:5px;font-weight:500;background:#edf5e7;color:#4b7540}.badge.gray{background:#f0f2f0;color:#818b82}.badge.orange{background:#fcf0e1;color:#ab6c32}.badge.light{background:#ffffff20;color:white;border:1px solid #ffffff29}.count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:23px;background:#f3f1e9;color:#9b8753;border-radius:5px;font-size:12px;margin-left:5px}.session-list{padding:0 23px}.session-row{display:flex;gap:14px;align-items:center;width:100%;text-align:left;padding:16px 0;background:none;border:0;border-top:1px solid #f0f3ee}.session-row:hover{background:#fafcf9}.session-date{width:46px;height:53px;border-radius:7px;background:#f3f6f0;border:1px solid #e6ede1;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0}.session-date span{font-size:11px;color:#748c63;letter-spacing:.6px}.session-date strong{font-size:22px;font-weight:600;line-height:1.2;color:#416137}.session-row-copy{flex:1;min-width:0}.session-row-copy>strong{font-size:14px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-row-copy>span{font-size:12px;color:#8b958d;display:block;margin-top:4px}.divider-dot{margin:0 4px}.session-row-copy .venue-line{font-size:11px;color:#99a199}.session-row-end{display:flex;align-items:flex-end;flex-direction:column;gap:8px}.session-row-end>strong{font-size:13px}.session-row>svg{color:#9aa99c;margin-left:0}.debt-list{padding:0 22px}.person-row{display:flex;gap:12px;align-items:center;border-top:1px solid #f0f3ee;padding:16px 0}.person-copy{flex:1;min-width:0}.person-copy strong{font-size:14px;display:block}.person-copy span{font-size:12px;color:#8a968b;display:block;margin-top:4px}.debt-number{font-size:14px;color:#a87932;font-weight:600;white-space:nowrap}.panel-bottom{display:flex;align-items:center;justify-content:center;gap:8px;background:#fbfcfa;border:0;border-top:1px solid var(--border);width:100%;padding:15px;font-size:12px;color:#527744}.panel-bottom:hover{background:#f2f7ed}.lower .panel{min-height:260px}.chart{height:185px;display:flex;gap:26px;align-items:flex-end;padding:0 29px 22px;background:repeating-linear-gradient(to top,transparent 0,transparent 39px,#f4f6f2 39px,#f4f6f2 40px);background-clip:content-box}.bar-column{flex:1;text-align:center;max-width:90px;height:100%;display:flex;align-items:center;flex-direction:column;justify-content:flex-end}.bar-column>span{font-size:12px;font-weight:600;color:#5e7660;margin-bottom:4px}.bar-track{height:110px;width:70%;display:flex;align-items:flex-end}.bar{width:100%;background:#cde9b2;border-radius:5px 5px 0 0;min-height:4px}.bar-column:nth-last-child(1) .bar{background:#386c43}.bar-column small{font-size:11px;color:#8a978b;margin-top:10px;background:#fff;padding:0 3px}.ranking-list{padding:0 23px 14px}.rank-row{display:flex;align-items:center;gap:10px;padding:9px 0}.rank{font-size:13px;color:#9ba499;min-width:20px;font-weight:600}.rank.first{color:#b99440}.rank-row>strong{flex:1;font-size:13px}.rank-row>span:last-child{font-size:12px;color:#47703c}.rank-row small{font-size:11px;color:#939c93}.app-footer{padding:5px 0 0;display:flex;justify-content:space-between;color:#98a195;font-size:11px}.muted{color:var(--muted)}.green-text{color:var(--green)}.orange-text{color:var(--orange)}.danger{color:#b54837}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px}.search-input{display:flex;align-items:center;gap:9px;min-height:42px;border:1px solid var(--border);border-radius:8px;padding:0 12px;color:#8c9a8d;background:white}.search-input input{border:0;outline:none;min-height:40px;width:200px;font-size:14px;background:transparent;color:var(--text)}.search-input input::placeholder{color:#929e94}.toolbar-right{display:flex;align-items:center;gap:12px}.toolbar-right select{border:1px solid var(--border);border-radius:8px;background:white;color:#68796a;min-height:42px;padding:8px 12px;font-size:14px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{font-weight:500;font-size:12px;color:#819082;background:#f7f9f6;padding:13px 20px;border-block:1px solid #eef2eb}td{font-size:13px;padding:15px 20px;border-bottom:1px solid #eff2ed}tr:last-child td{border-bottom:0}td small{display:block;color:#879387;font-size:12px;margin-top:4px}.person-cell{display:flex;align-items:center;gap:10px}.person-cell strong{font-size:13px}.person-cell small{font-size:11px}.participation{display:flex;align-items:center;gap:10px;color:#7e8a7f;font-size:12px}.participation>div{height:5px;border-radius:4px;background:#eaf0e6;width:65px;overflow:hidden}.participation>div span{display:block;height:100%;background:#83ad62;border-radius:4px}.table-footer{padding:17px 22px;display:flex;align-items:center;gap:7px;background:#fbfcfa;border-top:1px solid var(--border);font-size:12px;color:#8a9688}.tabs{display:flex;align-items:center;gap:5px;background:#f1f4ee;border-radius:8px;padding:4px;width:fit-content}.tabs button{border:0;background:none;color:#84917f;font-size:13px;padding:9px 13px;border-radius:5px;min-height:34px;white-space:nowrap}.tabs button.active{background:white;box-shadow:0 1px 4px #18381710;color:#315832;font-weight:600}.standalone{margin-bottom:22px}.table-note{font-size:13px;color:#8a9589;padding:0 23px 18px}.inline-search{margin:0 22px 20px;width:260px}.small-button{min-height:31px;padding:5px 11px;font-size:12px}.session-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:25px}.session-card{padding:22px;text-align:left;transition:box-shadow .2s,border-color .2s}.session-card:hover{border-color:#bacdae;box-shadow:0 8px 22px #163f2908}.row-between{display:flex;align-items:center;justify-content:space-between;gap:10px}.session-card h2{font-size:16px;margin:18px 0 12px}.session-card>p{font-size:13px;display:flex;align-items:center;gap:7px;color:#82917e;margin-top:8px}.session-card-people{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:22px}.session-card-people>span{font-size:12px;color:#81907d;display:flex;align-items:center;gap:5px}.session-card-bottom{border-top:1px solid var(--border);margin-top:20px;padding-top:15px;display:flex;align-items:center;justify-content:space-between}.session-card-bottom small{font-size:12px;color:#81907d;display:block}.session-card-bottom strong{font-size:17px;display:block;margin-top:4px}.session-card-bottom>svg{color:#94a68c}.empty{padding:35px 22px;text-align:center;color:#8b9b86;display:flex;flex-direction:column;align-items:center;gap:10px}.empty h3{font-size:15px;color:#43593e}.empty p{font-size:14px;max-width:370px}.empty .button{margin-top:10px}.court-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:15px 0 20px}.court-info{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#85917f;margin-bottom:18px}.court-info>div{display:flex;align-items:center;gap:8px}.court-info b{color:#4c6247}.court-info p{font-size:12px}.venue-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-bottom:26px}.venue-heading{background:#1a4736;padding:25px 23px;display:flex;align-items:center;justify-content:space-between;color:#f8fff6;gap:15px}.venue-theme-1{background:#3d5744}.venue-theme-2{background:#505d34}.venue-heading>.lucide{color:#d8ee9e;opacity:.8}.venue-heading .eyebrow{font-size:11px;color:#cadaba;letter-spacing:1.2px}.venue-heading h2{font-size:22px;margin-top:5px}.venue-heading-tags{display:flex;gap:6px;margin-top:10px}.venue-body{padding:20px 22px}.address{font-size:13px;color:#7e8d78;display:flex;gap:8px;align-items:center;margin:0 0 10px}.amenities{display:flex;gap:12px;flex-wrap:wrap;padding:8px 0 18px}.amenities>span{font-size:11px;color:#7c8e71;display:flex;align-items:center;gap:3px}.venue-price{padding-bottom:18px;border-bottom:1px solid var(--border);font-size:13px;color:#8a9683}.venue-price strong{font-size:20px;color:#315733;letter-spacing:-.7px}.venue-price small{font-size:12px}.slot-header{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin:18px 0 12px}.slot-header>span{font-size:11px;color:#6e9755}.court-slot-row{display:flex;align-items:center;gap:13px;margin-top:10px}.court-slot-row>span{font-size:12px;color:#819376;min-width:36px}.court-slot-row>div{display:flex;flex-wrap:wrap;gap:6px}.slot{border:1px solid #d4e3c8;background:#f4f9ee;color:#4b7540;font-size:12px;border-radius:5px;padding:9px 10px;min-height:35px;display:flex;gap:4px;align-items:center;justify-content:center;flex-wrap:wrap}.slot:hover{background:#d8eec4}.slot.blocked{background:#f1f2ef;border-color:#e4e7e0;color:#a1a99b}.slot.pending{background:#fbf2de;color:#ac873a;border-color:#efe1be}.slot.booked{background:#e8eee3;border-color:#d5decf;color:#84917b}.slot small{font-size:10px;display:block;width:100%}.slot-empty{font-size:13px;color:#889780;padding:12px 0}.booking-request{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 0;border-top:1px solid var(--border);margin-top:14px}.booking-request strong{font-size:13px}.booking-request p{font-size:12px;color:#8a9685;margin:4px 0 7px}.booking-request>div:last-child{display:flex;flex-direction:column;align-items:center;gap:4px}.bookings-panel{margin:20px 0}.loading-indicator{font-size:13px;color:#85927d;display:flex;align-items:center;justify-content:space-between;gap:15px}.loading-indicator button{font-size:13px}.modal{padding:0;border:1px solid #e1e8dc;background:white;border-radius:17px;max-width:min(520px,calc(100vw - 32px));width:100%;max-height:90vh;color:var(--text);box-shadow:0 20px 90px #071c3050}.modal.wide{max-width:min(820px,calc(100vw - 32px))}.modal::backdrop{background:#102b2966;backdrop-filter:blur(4px)}.modal-heading{padding:22px 25px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:15px;position:sticky;top:0;background:white;z-index:2}.modal-heading h2{font-size:18px;letter-spacing:-.4px}.icon-button{border:0;background:#f4f7f0;border-radius:50%;display:grid;place-items:center;width:32px;height:32px;color:#7b8f70}.form{padding:24px}.form>p{font-size:14px;margin-bottom:15px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}.field>span{font-size:14px;font-weight:500;color:#52634b}.field input,.field select{width:100%;border:1px solid #dbe4d4;border-radius:8px;min-height:44px;background:#fff;padding:10px 12px;font-size:14px;color:var(--text)}.field input:focus,.field select:focus{border-color:#739854}.field small{font-size:12px;color:#86947b;line-height:1.7}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.form .form-hint{font-size:14px;color:#7b8b71;line-height:1.8;background:#f7f9f3;padding:12px;border-radius:7px}.form .tabs{margin-bottom:24px}.checkbox-field{display:flex;gap:9px;align-items:center;font-size:14px;color:#617657;margin-bottom:15px}.checkbox-field input{width:17px;height:17px}.payment-summary{display:flex;align-items:center;gap:12px;background:#f6f8f2;border-radius:10px;padding:17px;margin-bottom:23px}.payment-summary strong{font-size:14px}.payment-summary p{font-size:13px;color:#859478;margin-top:5px}.session-detail{padding:24px}.detail-meta{display:flex;flex-wrap:wrap;gap:10px 19px;align-items:center;font-size:13px;color:#819573;margin-bottom:20px}.detail-meta>span{display:flex;align-items:center;gap:6px}.cost-box{background:#f6f8f2;border:1px solid #e8eddf;border-radius:10px;padding:18px}.cost-box h3{font-size:14px;display:flex;gap:6px;align-items:center;color:#4c663f}.cost-items{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:17px 0}.cost-items span{font-size:12px;color:#829173;display:block}.cost-items b{display:block;font-size:14px;margin-top:5px}.cost-total{display:flex;align-items:center;justify-content:space-between;border-top:1px dashed #dce3d3;padding-top:13px;font-size:14px}.cost-total small{font-size:12px;color:#859776}.cost-total strong{font-size:20px;color:#355c2b}.detail-section-title{margin-top:24px;font-size:14px}.detail-section-title h3{font-size:14px}.detail-help{font-size:13px;margin:9px 0 17px}.attendance-row{display:flex;gap:10px;align-items:center;min-height:62px;padding:10px 4px;border-top:1px solid #eef2e8}.attendance-row>input{width:17px;height:17px}.attendance-row>strong{flex:1;font-size:14px}.minutes-input{display:flex;align-items:center;gap:5px;font-size:12px;color:#8b997f}.minutes-input input{width:54px;border:1px solid #dfe6d7;border-radius:5px;background:#fff;padding:5px;font-size:14px;color:#45673a}.share-price{min-width:90px;text-align:right;font-size:14px}.absent{font-size:13px;color:#a0aa96}.detail-footer{border-top:1px solid var(--border);padding-top:20px;margin-top:15px;display:flex;align-items:center;justify-content:space-between;gap:20px}.detail-footer p{font-size:13px;color:#8b9780;max-width:330px}.confirmation-icon{display:grid;place-items:center;height:65px;width:65px;background:#eef6e5;color:#608b43;border-radius:50%;margin:0 auto 22px}.booking-summary{background:#f4f8ed;border-radius:10px;padding:20px;margin-bottom:23px}.booking-summary h3{font-size:20px;margin-top:12px}.booking-summary p{color:#7b8e6b;font-size:14px;margin:7px 0 12px}.booking-summary>strong{font-size:23px;color:#406b2e}.danger-button{background:#b24736;color:white;border-color:#b24736}.error-banner{background:#fff2ee;color:#a74530;border:1px solid #f5d7cd;padding:13px 17px;font-size:14px;display:flex;justify-content:space-between;align-items:center;gap:10px;border-radius:9px;margin-bottom:20px}.modal-error{margin:20px 24px 0}.toast{position:fixed;right:30px;bottom:25px;z-index:100;display:flex;align-items:center;gap:12px;padding:15px 20px;background:#183f2c;color:#eef9e5;box-shadow:0 7px 35px #12351e33;border-radius:10px;font-size:14px;max-width:calc(100vw - 40px)}.toast>svg{color:var(--lime)}.toast button{border:0;background:none;color:white;display:grid;place-items:center}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;background:#f6f8f2}.loading-screen h1{font-size:32px;letter-spacing:-1px}.loading-screen h1 span{color:#659c40}.loading-screen p{font-size:14px;color:#7c8d70}.loading-spin{animation:spin 1.3s linear infinite;color:#7da960}.no-next p{margin:15px 0;color:#c9dcbf}.no-next .button{margin-top:12px}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1500px){body{font-size:16px}.main-content{padding:38px 45px}.page-heading h1{font-size:34px}.page-heading p{font-size:14px}.button{font-size:14px}.overview-banner{min-height:228px}.banner-copy h2{font-size:30px}.banner-copy p{font-size:14px}.next-session-title h3{font-size:19px}.next-session-title p{font-size:14px}.stat-label{font-size:14px}.stat>strong{font-size:29px}.stat-detail{font-size:13px}.section-title h2{font-size:18px}.section-title p{font-size:14px}.session-row-copy>strong,.person-copy strong{font-size:14px}.session-row-copy>span,.person-copy span{font-size:14px}.session-row-end>strong,.debt-number{font-size:14px}.session-row{padding:19px 0}.person-row{padding:18px 0}}
@media(max-width:1250px){.sidebar{width:222px;padding-inline:13px}.main-shell{margin-left:222px;width:calc(100% - 222px)}.main-content{padding:27px 25px}.topbar{padding:0 25px}.heading-actions{max-width:400px}.export-button{display:none}.overview-banner{grid-template-columns:1fr 1.25fr}.banner-copy{padding:25px}.next-session{padding:0 23px}.next-bottom{flex-wrap:wrap}.next-session-title{gap:15px}.big-day{padding-right:15px}.stats-grid{gap:12px}.stat{padding:15px}.stat>strong{font-size:22px}.dashboard-grid{gap:18px}.section-title{padding:19px}.session-list,.debt-list{padding:0 19px}.session-row{gap:9px}.session-row>svg{display:none}.session-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.session-row-copy .venue-line{display:none}.next-bottom .avatar-stack>span:last-child:not(.avatar){font-size:11px}.court-toolbar{flex-wrap:wrap}.court-toolbar .search-input{flex:1}.venue-heading h2{font-size:19px}.rank-row>span:last-child small{display:none}}
@media(max-width:1020px){.sidebar{width:200px;padding-inline:10px}.main-shell{margin-left:200px;width:calc(100% - 200px)}.brand{font-size:24px;padding-inline:10px}.nav-item{font-size:14px;padding-inline:11px;gap:9px}.mini-tag{display:none}.club-switch{gap:6px}.club-switch strong{font-size:12px}.main-content{padding:24px 22px}.page-heading{align-items:flex-start}.page-heading h1{font-size:28px}.heading-actions{max-width:170px}.heading-actions .button{width:100%}.heading-actions .month-control{width:100%}.heading-actions input{width:100%;max-width:100%}.overview-banner{grid-template-columns:1fr 1.3fr}.banner-copy{padding:24px 20px}.banner-copy h2{font-size:22px}.next-session{padding:0 18px}.next-session-title h3{font-size:14px}.next-session-title p{font-size:12px}.big-day{font-size:34px}.stats-grid{grid-template-columns:repeat(2,1fr)}.stats-grid.three{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1fr}.lower{grid-template-columns:1fr 1fr}.lower .section-title h2{font-size:14px}.lower .section-title p{font-size:11px}.rank-row{gap:7px}.ranking-list{padding-inline:17px}.rank-row>strong{font-size:12px}.rank-row>span:last-child{font-size:11px}.rank-row .avatar{display:none}.table-toolbar{flex-wrap:wrap}.venue-grid{grid-template-columns:1fr}.today-label{font-size:12px}.demo-strip{align-items:flex-start}.demo-strip>svg{margin-top:2px}.demo-strip button{font-size:12px}.stats-grid.three .stat>strong{font-size:18px}.chart{gap:12px;padding-inline:20px}}
@media(max-width:760px){body{font-size:14px}.sidebar{position:sticky;top:0;left:0;width:100%;padding:12px 17px 0;z-index:30;display:block}.app-shell{display:block}.brand{font-size:22px;padding:0 0 12px;gap:8px;width:fit-content}.brand-mark{width:30px;height:30px;border-radius:8px}.brand-mark svg{width:21px}.brand-period{margin-left:-7px}.sidebar>.sidebar-caption,.club-switch,.sidebar-bottom,.discover-caption{display:none}.sidebar nav{display:flex;overflow-x:auto;gap:3px;margin:0 -17px;padding:0 12px 9px;scrollbar-width:none}.sidebar nav::-webkit-scrollbar{display:none}.nav-item{margin:0;min-height:40px;white-space:nowrap;font-size:13px;padding:10px 12px;gap:7px}.nav-item svg{width:16px;height:16px}.nav-dot{display:none}.main-shell{width:100%;margin:0}.topbar{height:54px;padding:0 20px}.breadcrumb{font-size:12px;gap:9px}.today-label{display:none}.top-divider{display:none}.topbar-right{gap:0}.main-content{padding:24px 18px}.page-heading{gap:14px;margin-bottom:20px}.page-eyebrow{font-size:10px;letter-spacing:1.4px}.page-heading h1{font-size:27px}.page-heading p{font-size:13px;max-width:240px}.heading-actions{max-width:143px;gap:8px}.heading-actions .button{min-height:36px;font-size:12px;padding:8px 10px;gap:4px}.heading-actions .button svg{width:14px}.month-control{min-height:35px;padding:6px 8px}.month-control input{font-size:12px}.demo-strip{font-size:12px;flex-wrap:wrap;padding:10px;gap:6px;margin-bottom:19px}.demo-strip>span{flex-basis:calc(100% - 24px)}.demo-strip button{margin-left:21px}.overview-banner{grid-template-columns:1fr;margin-bottom:18px}.banner-copy{padding:23px 24px}.banner-copy h2{font-size:29px;line-height:1.35;margin-top:8px}.banner-copy h2 br{display:none}.banner-copy p{margin-top:7px;font-size:13px}.banner-link{margin-top:12px}.next-session{border-left:none;border-top:1px solid #ffffff1a;margin:0;padding:21px 24px}.next-session-title{gap:22px;margin-top:13px}.big-day{font-size:40px;padding-right:22px}.next-session-title h3{font-size:16px}.next-session-title p{font-size:13px}.next-bottom{flex-wrap:nowrap;margin-top:20px}.next-bottom .button{font-size:13px}.next-bottom .avatar-stack>span:last-child:not(.avatar){font-size:12px}.stats-grid{gap:12px;margin-bottom:20px}.stat{padding:16px}.stat-label{font-size:13px}.stat-icon{width:27px;height:27px}.stat-icon svg{width:17px;height:17px}.stat>strong{font-size:24px;margin-top:10px}.stat-detail{font-size:11px;align-items:flex-start}.stats-grid.three{grid-template-columns:1fr}.stats-grid.three .stat>strong{font-size:28px}.dashboard-grid{gap:19px;margin-bottom:19px}.lower{grid-template-columns:1fr}.lower .section-title h2{font-size:15px}.lower .section-title p{font-size:13px}.section-title{padding:19px}.section-title h2{font-size:15px}.section-title p{font-size:12px}.session-list{padding:0 19px}.session-row{padding:17px 0;gap:11px}.session-row-copy>strong{font-size:14px}.session-row-copy>span{font-size:12px}.session-row-copy .venue-line{display:block}.rank-row .avatar{display:flex}.rank-row>strong{font-size:14px}.rank-row>span:last-child{font-size:13px}.rank-row>span:last-child small{display:inline;font-size:12px}.ranking-list{padding:0 23px 20px}.app-footer{font-size:10px;gap:12px;margin-top:22px}.table-toolbar{padding:17px;gap:13px}.table-toolbar .search-input{width:100%}.table-toolbar .search-input input{width:100%}.toolbar-right{gap:8px;flex-wrap:wrap;justify-content:space-between;width:100%}.toolbar-right select{flex:1;font-size:13px}.toolbar-right .button{font-size:12px;padding:9px 11px}.toolbar-right>svg{display:none}.tabs button{font-size:12px;padding-inline:11px}.session-cards{grid-template-columns:1fr}.session-card{padding:22px}.session-card h2{font-size:18px}.session-card>p{font-size:14px}.court-toolbar{gap:10px}.court-toolbar>.search-input{width:100%}.court-toolbar input{width:100%}.court-info{display:block}.court-info p{margin-top:8px}.court-info>div{font-size:12px}.venue-heading h2{font-size:24px}.loading-indicator{font-size:12px;align-items:flex-start}.loading-indicator button{font-size:12px;white-space:nowrap}.venue-heading{padding:24px}.venue-body{padding:20px}.court-slot-row{gap:8px}.court-slot-row>div{gap:5px}.slot{font-size:12px;padding:8px;min-height:37px}.modal{max-width:calc(100vw - 24px);max-height:92dvh;border-radius:13px}.modal-heading{padding:19px}.modal-heading h2{font-size:17px}.form,.session-detail{padding:19px}.field input,.field select{font-size:16px}.form-grid{gap:12px}.modal.wide{max-width:calc(100vw - 20px)}.detail-meta{gap:10px;font-size:12px}.cost-box{padding:15px}.cost-items{grid-template-columns:repeat(2,1fr);gap:12px}.cost-total{flex-wrap:wrap}.cost-total>span{font-size:13px}.cost-total strong{font-size:19px}.attendance-row{gap:7px;flex-wrap:wrap}.attendance-row .avatar{width:26px;height:26px;font-size:10px}.attendance-row>strong{font-size:13px;min-width:70px}.minutes-input{gap:3px;font-size:11px}.minutes-input input{width:43px;font-size:14px;padding:5px 3px}.share-price{min-width:65px;font-size:12px}.attendance-row .text-button{margin-left:auto;font-size:12px}.detail-footer{flex-direction:column;align-items:stretch;gap:13px}.detail-footer p{max-width:100%}.detail-help{font-size:12px}.form-footer{gap:8px}.form-footer .button{font-size:13px}.toast{bottom:17px;right:17px;font-size:13px;padding:14px;gap:9px}.no-next{padding-top:5px}}
@media(max-width:380px){.main-content{padding-inline:13px}.page-heading h1{font-size:25px}.heading-actions{max-width:130px}.page-heading p{font-size:12px}.stat{padding:13px}.stat>strong{font-size:21px}.stat-label{font-size:12px}.stat-detail{font-size:10px}.next-bottom .avatar-stack .avatar:nth-child(n+3){display:none}.session-row-copy .venue-line{display:none}.banner-copy h2{font-size:26px}.section-title h2{font-size:14px}.person-row{gap:9px}.debt-number{font-size:13px}.share-price{font-size:11px;min-width:56px}.attendance-row .avatar{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Vote, attendance and member funds */
.vote-table th{min-width:190px;vertical-align:top}.vote-table th:first-child{min-width:180px}.vote-table th small{display:block;font-weight:400}.vote-summary{display:flex;gap:10px;font-size:12px;margin:8px 0;color:#426c36}.vote-select{border:1px solid #d9e2d2;border-radius:7px;background:#f7f9f4;min-height:42px;padding:9px 12px;font-size:14px;width:160px}.vote-select.yes{background:#eaf4e1;color:#346127;border-color:#b9d6a5}.vote-select.no{background:#f2efee;color:#7b6159}.vote-select.maybe{background:#fff4dc;color:#92691d}.vote-note{padding-top:20px}.vote-buttons{display:flex;gap:8px;flex-wrap:wrap}.vote-choice{background:white;border:1px solid #d4ddcd;border-radius:8px;min-height:44px;padding:10px 16px;font-size:14px;flex:1;white-space:nowrap}.vote-choice.yes{background:#e6f4d8;color:#2c621e;border-color:#85b36b}.vote-choice.no{background:#f5e8e2;color:#8f3b22;border-color:#d4a38f}.vote-choice.maybe{background:#fff1cd;color:#805b0c;border-color:#dabb6e}.session-vote-strip{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:13px 0 20px;font-size:14px}.session-vote-strip small{flex-basis:100%;color:#78856f}.attendance-person{flex:1;min-width:130px}.attendance-person strong{font-size:14px;display:block}.attendance-person small{font-size:12px;display:block;color:#748569;margin-top:4px}.attendance-person small.green-text{color:var(--green)}.attendance-row{padding-block:15px}.wallet-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ledger-link{display:block}.wallet-balance{padding:22px;background:#edf5e6;border-radius:12px;display:flex;flex-direction:column;gap:6px;margin-bottom:14px;color:#416835}.wallet-balance strong{font-size:32px;letter-spacing:-1px}.wallet-balance small{font-size:13px;color:#6e825f}.wallet-debt{display:flex;justify-content:space-between;gap:12px;padding:8px 0 15px;font-size:14px}.wallet-ledger h3{font-size:16px;margin:25px 0 13px}.ledger-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 0;border-bottom:1px solid var(--border);font-size:14px}.ledger-row p{font-size:13px;color:#77876b;margin-top:5px}.ledger-row small{display:block;font-size:12px;color:#7b8971;margin-top:5px}.ledger-row>div:last-child,.ledger-row>b{text-align:right}.ledger-row>div:first-child{text-align:left;flex:1}.ledger-row .badge{margin-top:7px}.wallet-ledger{margin-bottom:24px}.wallet-ledger>.form-hint{font-size:13px;color:#7b8971;margin:16px 0}.finance-toolbar{flex-wrap:wrap}.finance-toolbar .tabs{overflow-x:auto;max-width:100%}.finance-toolbar .toolbar-right{width:auto}.finance-toolbar .tabs button{font-size:13px}tfoot td{font-weight:600;background:#f1f6eb;border-top:1px solid var(--border)}.member-portal{max-width:1050px;padding:24px;margin:auto}.portal-header{display:flex;align-items:center;justify-content:space-between;padding:22px;background:var(--forest-deep);border-radius:14px;color:white;margin-bottom:30px}.portal-header .brand{padding:0;font-size:24px}.portal-welcome{display:flex;align-items:center;gap:16px;margin-bottom:25px}.portal-welcome .avatar{width:60px;height:60px;font-size:19px}.portal-welcome span{color:var(--muted);font-size:13px}.portal-welcome h1{font-size:26px;margin:3px 0}.portal-welcome p{font-size:14px;color:var(--muted)}.portal-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:20px 0}.portal-summary>div{background:white;border:1px solid var(--border);border-radius:12px;padding:19px}.portal-summary span{display:block;font-size:13px;color:var(--muted)}.portal-summary strong{display:block;font-size:26px;margin-top:8px;letter-spacing:-.7px}.portal-tabs{margin:24px 0}.portal-tabs button{font-size:14px;min-height:44px}.member-portal>.form-hint{color:var(--muted);font-size:14px;margin:20px 0}.portal-session-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.portal-session{padding:23px}.portal-session h2{font-size:18px}.portal-session>p{display:flex;gap:7px;align-items:center;font-size:14px;color:#73836a;margin-top:14px}.portal-costs{background:#f5f8f0;padding:14px;border-radius:8px;margin:20px 0;font-size:13px}.portal-costs span,.portal-costs b,.portal-costs small{display:block;margin-bottom:5px}.portal-responses{padding-top:20px;font-size:14px}.portal-responses p{font-size:13px;color:#6c805f;margin-top:7px}.portal-responses small{font-size:12px;color:#78876e;display:block;margin-top:10px}.portal-ledger{padding:25px}.portal-footer{font-size:12px;color:#7e8b77;margin:30px 0}.portal-success{display:flex;gap:7px;align-items:center;color:#356a25;background:#edf6e4;border-radius:8px;padding:12px 15px;font-size:14px;margin-bottom:20px}.sidebar-tip{margin-top:12px}.sidebar-bottom{padding-top:20px}.cost-items b{font-variant-numeric:tabular-nums}
@media(max-width:760px){.portal-session-grid{grid-template-columns:1fr}.member-portal{padding:14px}.portal-header{padding:17px;margin-bottom:24px}.portal-header .brand{font-size:20px}.portal-welcome h1{font-size:22px}.portal-welcome p{font-size:13px}.portal-summary{gap:8px}.portal-summary>div{padding:12px}.portal-summary strong{font-size:19px}.portal-summary span{font-size:11px}.portal-session,.portal-ledger{padding:18px}.attendance-person{min-width:105px}.attendance-person strong{font-size:12px}.attendance-person small{font-size:10px}.wallet-actions{gap:8px}.wallet-ledger .ledger-row{flex-wrap:wrap}.finance-toolbar .toolbar-right{width:100%}.vote-table th{min-width:180px}.sidebar-bottom{display:none}}

/* Cost calculation, differentiated rates, sponsorship and payment status */
.pricing-fieldset{border:1px solid var(--border,#e2e8e5);border-radius:12px;padding:16px;margin:0}.pricing-fieldset legend{font-weight:700;padding:0 6px}.pricing-fieldset .checkbox-field{margin-bottom:16px}.calculation-line{font-size:13px;color:#326455;background:#eff7f1;border-radius:8px;padding:10px 12px}.rate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.pricing-preview{border:1px solid #dce9df;border-radius:12px;padding:16px;background:#f6faf7}.pricing-preview h3{font-size:14px;margin:0 0 10px}.pricing-preview>div{display:flex;justify-content:space-between;gap:16px;padding:7px 0;border-top:1px solid #e3ece5;font-size:13px}.sponsor-section{border:1px solid #dfebdc;border-radius:12px;padding:16px;margin:18px 0;background:#fbfdf9}.sponsor-section h3{font-size:15px;margin:0}.sponsor-line{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid #e3ece5;font-size:13px}.sponsor-line>div{flex:1;min-width:0}.sponsor-line small{display:block;color:#65766c;margin-top:4px}.sponsor-form{margin-top:16px}.payment-filter{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:8px 24px 20px;font-size:13px;color:#5b6c61}.payment-filter label{display:flex;align-items:center;gap:10px}.payment-filter select{padding:9px;border:1px solid #dce5dd;border-radius:8px;background:white;color:#18372c;min-height:40px}.wallet-balance small{display:block}.attendance-person small{line-height:1.65}.attendance-row .share-price{white-space:nowrap}
@media(max-width:600px){.rate-grid{grid-template-columns:1fr}.sponsor-section .row-between{gap:10px;flex-wrap:wrap}.sponsor-line{flex-wrap:wrap}.payment-filter{padding:12px 16px}.payment-filter label{align-items:flex-start;flex-direction:column}.pricing-preview>div{font-size:12px}}

/* Account connections and group invitations */
.community{display:grid;gap:20px}.community-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.community-panel,.community-empty{padding:24px}.community-panel h2,.community-empty h2{font-size:17px;margin:0 0 20px}.community-panel h3{font-size:15px}.friend-search{display:flex;gap:12px;align-items:flex-end}.friend-search .field{flex:1}.friend-search .button{margin-bottom:2px}.friend-row,.invite-row{display:flex;align-items:center;gap:12px;justify-content:space-between;border-top:1px solid #e6ece7;padding:16px 0;font-size:13px}.friend-row>div:not(.avatar){flex:1}.friend-row small,.invite-row small{display:block;color:#66766c;margin-top:6px}.invite-row p{color:#526a5b;font-size:13px;margin:6px 0}.invitation-form{padding:16px;background:#f1f7ee;border-radius:10px;margin-top:12px}.google-login{border-top:1px solid #e2e9e4;padding:12px 0}.google-login .google-button{min-height:44px}.google-button.hidden{display:none}.google-connection{margin-top:20px}.community .wallet-actions{flex-wrap:wrap}.community .form input:not([type=checkbox]){min-width:0}.community .form-hint{line-height:1.6}.community-empty p{color:#617467;line-height:1.7}.community-panel .field{min-width:0}
@media(max-width:850px){.community-grid{grid-template-columns:1fr}.community-panel{padding:18px}.invite-row{flex-wrap:wrap}.friend-search{align-items:stretch;flex-direction:column}}

.funding-fields{display:grid;gap:14px}.funding-summary{margin:14px 0;padding:14px;border-radius:10px;background:#eff7f1;color:#224a36;font-size:14px}.funding-summary .row-between{gap:12px;flex-wrap:wrap}.funding-summary p{line-height:1.6;margin:8px 0 0}.funding-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}.funding-actions button{min-height:40px}.sponsor-section .row-between>button{white-space:normal;text-align:left}
/* Monthly attendance podium. Rank is also written in text, never color alone. */
.attendance-honors{margin-bottom:24px;padding:26px 30px 16px;border:1px solid #e4dfcb;border-radius:20px;background:radial-gradient(ellipse at 50% 15%,#fff6d7 0,transparent 65%),#fffef9;overflow:hidden}.honors-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.honors-eyebrow{display:flex;align-items:center;gap:7px;color:#805e1f;font-size:11px;font-weight:800;letter-spacing:1.5px}.honors-heading h2{font-size:26px;letter-spacing:-.7px;color:#283f31;margin:8px 0}.honors-heading p{font-size:13px;color:#626d5c;margin:0;line-height:1.6}.honors-month{font-size:12px;font-weight:700;padding:8px 12px;border:1px solid #ded8bf;border-radius:100px;white-space:nowrap;color:#65562d;background:#fffdf3}.honors-podium{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:14px;padding:0;margin:22px auto 0;max-width:760px}.honors-place{min-width:0;text-align:center;grid-row:1}.honors-place-1{grid-column:2}.honors-place-2{grid-column:1}.honors-place-3{grid-column:3}.honors-person{display:flex;flex-direction:column;align-items:center;gap:7px;padding:10px 4px 18px;position:relative}.honors-avatar{position:relative;margin-bottom:6px}.honors-avatar .avatar,.honors-placeholder{width:76px;height:76px;font-size:24px;border:4px solid #cbd2d4;box-shadow:0 3px 0 #e7e9e5;display:flex;align-items:center;justify-content:center;border-radius:50%}.honors-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.honors-place-1 .avatar{width:92px;height:92px;border-color:#d9b44a;box-shadow:0 0 0 6px #f8ecc2}.honors-place-3 .avatar{border-color:#c79672}.honors-cup{color:#a97617;margin-bottom:6px;fill:#f5db85}.honors-medal{position:absolute;bottom:-7px;left:50%;transform:translateX(-50%);min-width:25px;height:25px;border-radius:50%;display:grid;place-items:center;border:2px solid #fffef9;background:#dbe2e5;color:#3b4d54;font-size:12px;font-weight:900}.honors-place-1 .honors-medal{background:#e4bd50;color:#4b3609}.honors-place-3 .honors-medal{background:#e8c2a4;color:#633b20}.honors-name{font-size:15px;line-height:1.4;overflow-wrap:anywhere;color:#243e30;max-width:100%}.honors-count{font-size:22px;font-weight:800;color:#284f39;line-height:1.2}.honors-count small{font-size:13px;font-weight:500}.honors-hours{font-size:12px;color:#64715f}.honors-step{height:86px;border:1px solid #dce2e1;border-bottom:0;border-radius:12px 12px 0 0;background:linear-gradient(#e9eeee,#f7f8f5);padding:13px 4px 0;display:flex;align-items:center;flex-direction:column;gap:3px;color:#576c71}.honors-step span{font-size:10px;font-weight:800;letter-spacing:1px}.honors-step b{font-size:32px;line-height:1.2}.honors-place-1 .honors-step{height:116px;background:linear-gradient(#f2d67e,#fff4cf);border-color:#e2c76e;color:#6b4e15}.honors-place-3 .honors-step{height:65px;background:linear-gradient(#edd2bb,#fcf0e6);border-color:#e4c7ad;color:#7a5134}.honors-rule{border-top:1px solid #e8e4d4;padding-top:12px;margin:0;font-size:11px;line-height:1.6;color:#69735f;text-align:center}.honors-vacant .honors-person{color:#7d8978}.honors-placeholder{border-style:dashed;box-shadow:none;color:#8a9481;background:#fafbf6}.honors-empty{display:flex;align-items:center;flex-direction:column;gap:10px;text-align:center;padding:32px 12px;color:#896b2f}.honors-empty strong{font-size:17px;color:#3f513e}.honors-empty p{font-size:13px;color:#63705e;margin:0}.recipient-picker{border:1px solid #dce6db;border-radius:12px;padding:14px;min-width:0}.recipient-picker legend{font-size:14px;font-weight:700;padding:0 5px}.recipient-badges{display:flex;flex-wrap:wrap;gap:7px;margin:9px 0}.recipient-badge{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:5px 9px;border-radius:16px;background:#eaf3e8;color:#32583d;border:1px solid #cedfc9;font-size:12px;font-weight:600;overflow-wrap:anywhere;line-height:1.5}.recipient-badge button{display:grid;place-items:center;flex-shrink:0;border:0;border-radius:50%;color:#32583d;background:transparent;width:28px;height:28px;cursor:pointer}.recipient-badge button:hover{background:#cfe1c9}.recipient-options{border:1px solid #dce6db;border-radius:9px;background:white}.recipient-options summary{padding:12px;cursor:pointer;font-size:14px;font-weight:600}.recipient-options>div{max-height:224px;overflow:auto;padding:4px 10px;border-top:1px solid #e6ece3}.recipient-option{display:flex;align-items:center;gap:10px;padding:10px 4px;min-height:44px;font-size:14px;cursor:pointer}.recipient-option input{width:18px;height:18px;flex-shrink:0;accent-color:#4b7654}.recipient-picker>select{width:100%}
@media(max-width:600px){.attendance-honors{padding:20px 12px 12px;border-radius:16px}.honors-heading{flex-wrap:wrap;gap:12px}.honors-heading h2{font-size:23px}.honors-podium{gap:7px;margin-top:14px}.honors-avatar .avatar,.honors-placeholder{width:58px;height:58px;font-size:18px;border-width:3px}.honors-place-1 .avatar{width:72px;height:72px;box-shadow:0 0 0 4px #f8ecc2}.honors-name{font-size:13px}.honors-hours{font-size:11px}.honors-count{font-size:20px}.honors-step span{font-size:8px;letter-spacing:.5px}.honors-person{padding-left:0;padding-right:0}.honors-rule{font-size:11px;text-align:left}.recipient-badge button{width:32px;height:32px}}

.recipient-picker>select{min-height:44px;border:1px solid #cfdccc;border-radius:9px;background:#fff;color:#284632;padding:10px 12px;font:inherit;font-size:14px}

.funding-mode{border:0;margin:0;padding:0;min-width:0}.funding-mode legend{font-size:14px;font-weight:700;margin-bottom:9px}.funding-mode>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.funding-mode-option{display:flex;align-items:flex-start;gap:10px;padding:14px 12px;border:1px solid #d3dfcf;background:white;border-radius:10px;cursor:pointer;min-height:76px}.funding-mode-option:has(input:checked){border-color:#638650;background:#edf5e7;box-shadow:0 0 0 1px #638650}.funding-mode-option input{width:18px;height:18px;flex-shrink:0;margin:2px 0 0;accent-color:#4e723b}.funding-mode-option strong{display:block;font-size:14px;line-height:1.4;color:#294333}.funding-mode-option small{display:block;font-size:12px;line-height:1.5;color:#60735b;margin-top:5px}@media(max-width:600px){.funding-mode>div{grid-template-columns:1fr}.funding-mode-option{min-height:64px}}
/* One sponsorship entry point, progressive fields and compact saved cards. */
.sponsor-section.sponsorship-card{padding:20px;background:#fff;border-color:#dce6da;border-radius:16px}.sponsorship-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.sponsorship-title{display:flex;align-items:center;gap:11px;min-width:0}.sponsorship-icon{display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;background:#edf4e8;border-radius:12px;color:#4c713d}.sponsorship-title h3{font-size:16px;line-height:1.4}.sponsorship-title p{margin:3px 0 0;font-size:12px;line-height:1.5;color:#71806b}.sponsorship-heading>button{flex-shrink:0;min-height:38px;font-size:12px;gap:5px}.sponsorship-empty{margin:16px 0 0;padding:14px 16px;background:#f7f9f4;border:1px dashed #dbe5d2;border-radius:10px;font-size:13px;line-height:1.65;color:#63725b}.sponsorship-scope{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:#f1f4ed;border-radius:10px}.sponsorship-scope button{border:0;background:transparent;border-radius:7px;min-height:42px;font:inherit;font-size:13px;font-weight:650;color:#64775a;cursor:pointer;padding:8px}.sponsorship-scope button[aria-pressed=true]{background:white;color:#315330;box-shadow:0 1px 5px #223c1512}.sponsorship-scope button:disabled{opacity:.45;cursor:not-allowed}.sponsorship-editor{border-top:1px solid #e7ece3;padding-top:18px;gap:17px}.sponsorship-card .sponsorship-hint,.funding-fields .sponsorship-hint{font-size:12px;line-height:1.65;color:#68795e;margin:0;padding:0;background:none;border:0}.sponsorship-footer{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #e5ebdf;padding-top:16px}.sponsorship-footer button{min-height:42px}.sponsorship-saved{border:1px solid #e0e9d9;border-radius:12px;padding:15px;margin-top:16px;background:#fafcf7}.sponsorship-person{display:flex;align-items:center;gap:10px;min-width:0}.sponsorship-person>div{flex:1;min-width:0}.sponsorship-person strong{font-size:14px;line-height:1.5;overflow-wrap:anywhere}.sponsorship-person>div>span{display:block;font-size:12px;color:#6b7b60;margin-top:2px;line-height:1.5}.sponsorship-person>b{font-size:14px;white-space:nowrap;color:#345a37}.sponsorship-type{font-size:11px;white-space:nowrap;color:#54713e;background:#eaf2df;border:1px solid #d3e1c5;padding:4px 8px;border-radius:6px}.sponsorship-amounts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid #e0e8d8}.sponsorship-amounts>div>span{display:block;font-size:11px;line-height:1.5;color:#6c7b60}.sponsorship-amounts strong{display:block;margin-top:4px;font-size:19px;color:#365a38}.sponsorship-bottom{display:flex;align-items:center;gap:10px;margin-top:12px}.sponsorship-bottom p{margin:0;flex:1;font-size:11px;line-height:1.65;color:#6c7b61}.sponsorship-bottom button{white-space:nowrap;font-size:12px;min-height:32px}.sponsorship-recipients{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}.sponsorship-recipients>span{font-size:11px;color:#708263}.sponsorship-recipients .recipient-badges{margin:0;flex:1}.sponsorship-card .sponsor-line{display:block}.sponsorship-card .sponsor-line>div{width:100%}.recipient-all{display:flex;align-items:center;gap:9px;font-size:13px;min-height:34px;color:#4b6540}.recipient-all input{width:17px;height:17px;accent-color:#52763e}.sponsorship-card .recipient-picker{padding:12px;background:#fcfdfa}.sponsorship-card .recipient-picker legend{font-size:13px}.sponsorship-card .recipient-options{margin-top:8px}.sponsorship-card .funding-mode-option{padding:12px;min-height:72px}.sponsorship-card .funding-mode-option strong{font-size:13px}.sponsorship-card .funding-mode-option small{font-size:11px}.sponsorship-card .funding-mode legend{font-size:13px}
@media(max-width:600px){.sponsor-section.sponsorship-card{padding:15px;border-radius:12px}.sponsorship-heading{align-items:flex-start;gap:8px}.sponsorship-icon{width:34px;height:34px;border-radius:9px}.sponsorship-title{gap:8px}.sponsorship-title h3{font-size:14px}.sponsorship-title p{font-size:11px}.sponsorship-heading>button{font-size:11px;min-height:34px;padding:7px 9px}.sponsorship-scope button{font-size:12px}.sponsorship-saved{padding:12px}.sponsorship-person{flex-wrap:wrap}.sponsorship-person .avatar{width:34px;height:34px}.sponsorship-amounts strong{font-size:16px}.sponsorship-person strong{font-size:13px}.sponsorship-type{font-size:10px}.sponsorship-footer>button{flex:1}.sponsorship-empty{font-size:12px;padding:12px}.sponsorship-card .funding-mode>div{grid-template-columns:1fr}.sponsorship-bottom{align-items:flex-start}}
.sponsorship-card .recipient-options summary{display:flex;align-items:center;justify-content:space-between;gap:10px;list-style:none;color:#416239;font-size:13px;font-weight:600;padding:12px}.sponsorship-card .recipient-options summary::-webkit-details-marker{display:none}.recipient-options summary>span:last-child{display:flex;align-items:center;gap:7px}.recipient-options summary b{font-size:11px;background:#e7f0df;color:#436435;border-radius:6px;min-width:21px;padding:2px 5px;text-align:center}.recipient-options[open] summary svg{transform:rotate(180deg)}.sponsorship-card .recipient-options .recipient-search{display:flex;align-items:center;gap:8px;padding:8px 12px;color:#829074;max-height:none;background:#f7f9f4}.recipient-search input{min-width:0;width:100%;border:0;background:transparent;padding:5px 0;min-height:30px;color:#345035;font:inherit;font-size:13px;outline-offset:4px}.sponsorship-card .recipient-option-list{padding:6px;max-height:240px}.sponsorship-card .recipient-option{gap:10px;padding:8px;border-radius:8px;min-height:49px;font-size:13px}.recipient-option>span:not(.avatar){flex:1;min-width:0;overflow-wrap:anywhere}.recipient-option:has(input:checked){background:#eef5e8;color:#315232}.recipient-option:hover{background:#f3f7ef}.recipient-option .avatar{width:30px;height:30px;font-size:10px;flex-shrink:0}.recipient-option input{margin-left:auto}.recipient-badge .avatar{width:21px!important;height:21px!important;font-size:8px;flex-shrink:0}.sponsorship-card .recipient-badge{gap:6px;padding:4px 7px;border-radius:9px;background:#f0f5eb;font-size:11px;border-color:#d8e5cf}.sponsorship-card .recipient-badge button{width:26px;height:26px}.sponsorship-card .recipient-all{font-size:12px}.sponsorship-heading>button{white-space:normal;max-width:145px}.sponsorship-title{flex:1}@media(max-width:600px){.sponsorship-heading>button{max-width:112px}.sponsorship-card .recipient-badge button{width:30px;height:30px}}
.recipient-selection-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:2px 0 9px;font-size:12px;color:#49673e;font-weight:600}.recipient-selection-heading button{font-size:11px;min-height:28px}.recipient-selection-preview{align-items:center;max-height:94px;overflow:auto}.recipient-overflow{border:1px dashed #bacdae;background:#f3f7ee;border-radius:9px;min-height:35px;padding:5px 10px;color:#44623a;font:inherit;font-size:12px;font-weight:650;cursor:pointer}.recipient-options>.recipient-list-tabs{display:flex;gap:5px;padding:7px;background:#f5f8f1;max-height:none;overflow:visible}.recipient-list-tabs button{flex:1;min-height:34px;border:0;border-radius:6px;background:transparent;color:#617657;font-size:12px;font-weight:600;cursor:pointer}.recipient-list-tabs button[aria-pressed=true]{background:#fff;color:#365c32;box-shadow:0 1px 4px #34502114}.recipient-all-scoped{padding:8px 12px;border-top:1px solid #e5ecdf;border-bottom:1px solid #e5ecdf;background:#fafcf7}.recipient-options .recipient-option-list{max-height:210px!important;overscroll-behavior:contain}.recipient-option small{display:block;font-size:10px;line-height:1.5;color:#88713e}.recipient-scope-note{font-size:11px;line-height:1.6;color:#8b6b33;margin:8px 0 0}.recipient-scope-note button{font-size:11px}.recipient-options .recipient-option-list>.sponsorship-hint{padding:12px}.recipient-selection-preview .recipient-badge>span:not(.avatar){max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.attendance-disclosure{border:1px solid #dfe7d8;border-radius:12px;margin:18px 0;overflow:hidden}.attendance-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px;background:#f6f8f1;cursor:pointer;list-style:none}.attendance-disclosure>summary::-webkit-details-marker{display:none}.attendance-disclosure>summary>div{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.attendance-disclosure>summary strong{font-size:14px;color:#365337}.attendance-disclosure>summary small{font-size:11px;color:#748167}.attendance-disclosure-action{display:flex;align-items:center;gap:6px;font-size:12px;color:#5b7451;white-space:nowrap}.attendance-disclosure[open] .attendance-disclosure-action svg{transform:rotate(180deg)}.attendance-disclosure>.detail-help,.attendance-disclosure>.wallet-actions{margin:12px 15px}.attendance-disclosure .attendance-list{padding:0 12px 8px}.collection-refresh{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0}.collection-refresh p{font-size:12px;line-height:1.6;color:#6b7c61;margin:0}.collection-refresh button{display:flex;align-items:center;gap:5px;font-size:12px;white-space:nowrap;min-height:36px}.session-collection-details li{flex-wrap:wrap}@media(max-width:600px){.attendance-disclosure>summary{padding:12px}.attendance-disclosure>summary strong{font-size:13px}.attendance-disclosure>summary small{display:none}.attendance-disclosure-action{font-size:11px}.collection-refresh{align-items:flex-start;flex-wrap:wrap}}

/* The scene is decorative and isolated from financial controls. */
.overview-banner{display:block;background:#12382d;border:1px solid #244a3a;box-shadow:0 12px 28px #12382d0c}
.shuttle-hero{--hero-lime:#d0f68a;position:relative;isolation:isolate;min-height:324px;overflow:hidden;background:radial-gradient(ellipse at 76% 38%,#326346 0%,#194735 34%,#12382d 70%)}
.shuttle-hero:after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(90deg,#0c2e241c,transparent 60%);z-index:-1}
.shuttle-hero-copy{position:relative;z-index:2;padding:32px 36px 35px;width:51%;pointer-events:none}
.shuttle-hero-copy button{pointer-events:auto}
.shuttle-eyebrow{display:flex;align-items:center;gap:8px;color:#c4ddba;font-size:10px;letter-spacing:2.1px;font-weight:600}
.shuttle-eyebrow>span{height:5px;width:5px;border-radius:100%;background:var(--hero-lime);box-shadow:0 0 0 4px #c8f48b0f}
.shuttle-hero h2{font-size:clamp(28px,2.65vw,40px);line-height:1.3;letter-spacing:-1.3px;font-weight:600;margin:17px 0 12px;white-space:nowrap}
.shuttle-hero h2 em{font-style:normal;color:var(--hero-lime)}
.shuttle-hero-copy p{font-size:13px;line-height:1.8;color:#b6cdbb}
.shuttle-primary{display:inline-flex;align-items:center;gap:17px;min-height:43px;background:var(--hero-lime);border:1px solid var(--hero-lime);border-radius:8px;color:#193e28;padding:10px 15px;font-size:12px;font-weight:600;margin-top:21px;box-shadow:0 3px 12px #001e2422}
.shuttle-primary:hover{background:#dffaaf;box-shadow:0 5px 20px #001e2433}
.shuttle-visual{position:absolute;inset:0 -2% 0 40%;pointer-events:none;overflow:hidden}
.shuttle-canvas{position:absolute;inset:-8px -8% -5px -7%;z-index:2}
.shuttle-canvas canvas{display:block;width:100%;height:100%}
.shuttle-backword{position:absolute;top:28px;left:9%;font-size:clamp(80px,11vw,160px);font-weight:700;line-height:1;letter-spacing:-9px;color:#e0f9ba06;-webkit-text-stroke:1px #c2e7a419;transform:skew(-9deg);user-select:none}
.shuttle-orbit{position:absolute;width:290px;height:290px;border:1px solid #c2e7a412;border-radius:50%;top:-45px;right:3%;box-shadow:0 0 0 36px #c2e7a405,0 0 0 72px #c2e7a404}
.shuttle-caption{position:absolute;bottom:23px;left:53%;right:167px;display:flex;align-items:center;gap:12px;color:#a2bea6;z-index:3}
.shuttle-coordinate{font-size:8px;letter-spacing:1.3px;white-space:nowrap}
.shuttle-caption-rule{height:1px;background:#a2bea63b;flex:1}
.shuttle-controls{position:absolute;right:22px;bottom:14px;display:flex;gap:6px;align-items:center;z-index:3}
.shuttle-smash,.shuttle-pause{min-height:44px;border:1px solid #b2d6972e;border-radius:8px;background:#153d2fd9;color:#daefc9;display:flex;align-items:center;justify-content:center;gap:7px;font-size:11px;padding:0 12px;backdrop-filter:blur(10px)}
.shuttle-smash:hover,.shuttle-pause:hover{background:#2b5940;color:#e6ffc9}
.shuttle-pause{width:44px;padding:0}
.pause-bars{width:9px;height:12px;border-left:3px solid currentColor;border-right:3px solid currentColor}
.shuttle-still-label{font-size:10px;letter-spacing:.4px;color:#b8d0b4;padding:13px 0}
.overview-banner .next-session{display:flex;align-items:center;justify-content:space-between;gap:20px;border-left:0;border-top:1px solid #bedba41b;background:#0d2b222b;margin:0;padding:19px 27px}
.overview-banner .next-label{font-size:9px;max-width:115px;line-height:1.8;letter-spacing:1.4px;flex-shrink:0}
.overview-banner .next-session-title{margin:0;gap:17px;flex:1;min-width:0}
.overview-banner .big-day{font-size:31px;padding-right:16px}
.overview-banner .big-day>span{font-size:8px;letter-spacing:.7px;margin-top:7px}
.overview-banner .next-session-title h3{font-size:13px}
.overview-banner .next-session-title p{font-size:11px;margin-top:3px}
.overview-banner .next-bottom{margin:0;gap:19px;flex-shrink:0}
.overview-banner .next-bottom .button{min-height:40px}
.overview-banner .avatar-stack>span:last-child:not(.avatar){font-size:10px}
.overview-banner .avatar-stack .avatar{width:26px;height:26px;font-size:9px;border-color:#173a2d}
.overview-banner .no-next{display:flex;align-items:center;gap:20px;flex:1;justify-content:flex-end;font-size:13px;color:#c9deca}
.shuttle-fallback{position:absolute;inset:0;transition:opacity .25s}
.shuttle-fallback.is-hidden{opacity:0}
.fallback-court{position:absolute;width:80%;height:70%;left:10%;top:33%;border:1px solid #b3d9a43b;background:repeating-linear-gradient(90deg,transparent 0 24%,#b3d9a41f 24% 24.5%,transparent 24.5% 25%),repeating-linear-gradient(0deg,transparent 0 32%,#b3d9a42b 32% 32.5%,transparent 32.5% 33%);transform:perspective(400px) rotateX(65deg) rotateZ(-20deg)}
.fallback-shuttle{position:absolute;width:100px;height:155px;left:43%;top:21%;transform:rotate(38deg);filter:drop-shadow(5px 8px 8px #001d263b)}
.fallback-shuttle i{position:absolute;bottom:26px;left:39px;width:23px;height:125px;background:linear-gradient(90deg,#dbdfcf,#fffdf3 55%,#d3dfc1);border-radius:60% 60% 30% 30%;transform-origin:50% 100%;border:1px solid #dee5d5}
.fallback-shuttle b{position:absolute;bottom:0;left:29px;width:44px;height:40px;border-radius:4px 4px 45% 45%;background:linear-gradient(#c3ec86 0 18%,#ece5d4 18% 100%)}
@media(min-width:1500px){.shuttle-hero-copy{padding-left:40px}.shuttle-hero{min-height:345px}.shuttle-canvas{inset:-12px -2% -12px -2%}}
@media(max-width:1200px){.overview-banner .next-label{display:none}.overview-banner .next-bottom .avatar-stack{display:none}.shuttle-caption{display:none}.shuttle-hero-copy{padding-left:27px}.shuttle-hero h2{font-size:31px}.shuttle-visual{left:42%}}
@media(max-width:700px){.shuttle-hero{min-height:329px}.shuttle-hero-copy{width:100%;padding:25px 23px 122px}.shuttle-eyebrow{font-size:9px}.shuttle-hero h2{font-size:29px;margin-top:13px;letter-spacing:-1px}.shuttle-hero-copy p{font-size:11px;max-width:60%}.shuttle-primary{margin-top:17px;font-size:11px;gap:9px;padding:9px 12px}.shuttle-visual{inset:80px -30% -6px 25%;opacity:.86}.shuttle-canvas{inset:0 -15% 0 -15%}.shuttle-backword{top:45px;left:25%;font-size:100px}.shuttle-orbit{right:10%;width:240px;height:240px;top:12px}.shuttle-controls{right:15px;bottom:13px}.shuttle-smash{min-height:44px}.overview-banner .next-session{padding:17px 20px;gap:14px}.overview-banner .next-session-title{gap:12px}.overview-banner .next-session-title h3{font-size:12px}.overview-banner .big-day{font-size:28px;padding-right:12px}.overview-banner .next-session-title p{font-size:10px}.overview-banner .next-bottom .button{font-size:10px;padding:8px}.overview-banner .next-bottom .button svg{display:none}.overview-banner .no-next{justify-content:space-between;gap:12px;font-size:11px}.overview-banner .no-next .button{font-size:11px}.fallback-shuttle{transform:rotate(38deg) scale(.8)}}
@media(prefers-reduced-motion:reduce){.shuttle-hero *{animation:none!important;transition:none!important}}
/* Motion is contained within the hero; the 360 viewer enters the native top layer. */
.shuttle-view-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 12px;border:1px solid #d0f68a54;border-radius:8px;background:#d0f68a;color:#193e28;font-size:11px;font-weight:600}
.shuttle-view-button:hover{background:#e1ffad}.shuttle-caption{right:325px}.shuttle-controls{gap:6px}
.shuttle-viewer{width:min(920px,calc(100vw - 32px));max-height:calc(100dvh - 40px);padding:0;margin:auto;border:1px solid #456146;border-radius:20px;background:#113328;color:#f4f7eb;box-shadow:0 24px 120px #061d1680;overflow:auto;isolation:isolate;font-family:inherit}
.shuttle-viewer::backdrop{background:#061b15bc;backdrop-filter:blur(7px)}
.shuttle-viewer-shell{width:100%;background:radial-gradient(ellipse at 28% 42%,#345c40,#113328 70%)}
.shuttle-viewer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:28px 30px 23px;border-bottom:1px solid #d9edba18}
.shuttle-viewer-header h2{font-size:26px;line-height:1.3;letter-spacing:-.8px;margin:10px 0 8px;white-space:normal}
.shuttle-viewer-header p{font-size:12px;color:#b0c7b3;line-height:1.6}
.shuttle-viewer-close{width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;background:#d9edba0a;border:1px solid #d9edba30;border-radius:50%;color:#cce0c0}
.shuttle-viewer-close:hover{background:#d9edba20}
.shuttle-viewer-body{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(265px,1fr)}
.shuttle-viewer-scene{min-height:420px;position:relative;overflow:hidden;border-right:1px solid #d9edba15}
.shuttle-viewer-canvas{position:absolute;inset:0 0 25px;cursor:grab;touch-action:none;z-index:2;outline-offset:-5px!important;border-radius:9px}
.shuttle-viewer-canvas.is-dragging{cursor:grabbing}.shuttle-viewer-canvas canvas{display:block;width:100%;height:100%;pointer-events:none}
.shuttle-viewer-watermark{position:absolute;inset:36px 20px auto;text-align:center;letter-spacing:-10px;font-size:140px;font-weight:700;color:#d2ecb509;-webkit-text-stroke:1px #d2ecb521;line-height:1;pointer-events:none}
.shuttle-drag-help{position:absolute;bottom:17px;left:17px;right:17px;text-align:center;font-size:9px;color:#a8bfa9;pointer-events:none;line-height:1.7}
.shuttle-viewer-options{padding:30px 27px;align-self:center}.shuttle-viewer-label{font-size:9px;letter-spacing:2px;color:#bad297}
.shuttle-viewer-options h3{font-size:26px;letter-spacing:-.6px;line-height:1.4;margin:15px 0 12px}.shuttle-viewer-options h3 em{font-style:normal;color:#d0f68a}
.shuttle-viewer-options>p{font-size:12px;line-height:1.9;color:#adbfad;max-width:255px}
.shuttle-color-field{border:0;padding:0;margin:23px 0}.shuttle-color-field legend{padding:0;font-size:11px;width:100%;display:flex;justify-content:space-between;color:#d9e8d1}.shuttle-color-field legend span{font-size:10px;color:#a9bea5}
.shuttle-swatches{display:flex;gap:12px;margin-top:12px}.shuttle-swatches button{height:44px;width:44px;display:grid;place-items:center;border-radius:50%;border:1px solid transparent;background:none;padding:4px}.shuttle-swatches button span{width:30px;height:30px;background:var(--swatch);border-radius:50%;box-shadow:inset 0 0 0 1px #ffffff38}.shuttle-swatches button[aria-pressed="true"]{border-color:#d7f1bb;box-shadow:0 0 0 3px #d7f1bb0a}.shuttle-swatches button:hover{background:#ffffff0a}
.shuttle-viewer-tools{display:flex;gap:7px}.shuttle-viewer-tools button,.shuttle-auto{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;min-width:44px;border:1px solid #cde5bd29;border-radius:8px;background:#d9edba08;color:#d3e4c7;font-size:11px;padding:0 11px}.shuttle-viewer-tools button:nth-child(2){flex:1}.shuttle-viewer-tools button:hover,.shuttle-auto:hover{background:#d9edba17}.turn-left{transform:rotate(180deg)}
.shuttle-auto{width:100%;margin-top:9px}.shuttle-auto.active{border-color:#d0f68a8a;background:#d0f68a16;color:#d0f68a}
.shuttle-reduced-note{display:block;font-size:10px;color:#b5c9a9;margin-top:13px;line-height:1.8}.shuttle-model-note{display:block;color:#8ea68e;font-size:9px;line-height:1.7;margin-top:20px}
.shuttle-viewer-fallback{position:absolute;inset:0;pointer-events:none}.shuttle-viewer-fallback .fallback-shuttle{left:calc(50% - 50px);top:27%;transform:rotate(35deg) scale(1.35)}.shuttle-viewer-fallback>p{position:absolute;bottom:55px;left:0;right:0;text-align:center;font-size:11px;color:#b5c9a9}
@media(max-width:700px){.shuttle-controls{left:16px;right:16px;justify-content:flex-end}.shuttle-view-button{margin-right:auto;font-size:10px;padding:0 10px}.shuttle-smash{font-size:10px;padding:0 9px}.shuttle-hero-copy{padding-bottom:122px}.shuttle-viewer{width:calc(100vw - 20px);max-height:calc(100dvh - 24px);border-radius:15px}.shuttle-viewer-header{padding:20px}.shuttle-viewer-header h2{font-size:23px}.shuttle-viewer-header p{font-size:11px}.shuttle-viewer-body{grid-template-columns:1fr}.shuttle-viewer-scene{min-height:310px;border-right:0;border-bottom:1px solid #d9edba15}.shuttle-viewer-watermark{font-size:120px;top:25px}.shuttle-viewer-options{padding:23px}.shuttle-viewer-options h3{font-size:22px;margin:10px 0}.shuttle-viewer-options h3 br{display:none}.shuttle-viewer-options>p{max-width:none}.shuttle-viewer-label{font-size:8px}.shuttle-color-field{margin:20px 0}.shuttle-viewer-fallback .fallback-shuttle{top:23%;transform:rotate(35deg) scale(1.1)}.shuttle-model-note{margin-top:15px}}
@media(prefers-reduced-motion:reduce){.shuttle-viewer *{animation:none!important;transition:none!important}}
/* A quiet holographic frame leaves the luminous shuttle and its flight as the focus. */
.shuttle-hero{background:radial-gradient(ellipse at 75% 37%,#285640 0%,#163f32 39%,#102f28 79%)}
.shuttle-hero:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;border:1px solid #d1efbd08;background:linear-gradient(120deg,transparent 44%,#c8f68a03 44.2%,transparent 66%),linear-gradient(90deg,transparent 39%,#091e160e 40%,transparent 41%)}
.shuttle-backword{color:#d8f7b803;-webkit-text-stroke:1px #c2e7a415;font-style:italic;letter-spacing:-8px}
.shuttle-orbit{border-color:#c2e7a41b;box-shadow:0 0 0 35px #c2e7a403,0 0 0 70px #c2e7a403,inset 0 0 45px #bded8d04}
.shuttle-holo-grid{position:absolute;inset:10px 17px 45px 14%;background-image:linear-gradient(#c6f68a06 1px,transparent 1px),linear-gradient(90deg,#c6f68a06 1px,transparent 1px);background-size:36px 36px;mask-image:radial-gradient(ellipse,#0009,transparent 73%);pointer-events:none}
.shuttle-lab-label{position:absolute;top:24px;left:24%;right:33px;display:flex;align-items:center;gap:7px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px;letter-spacing:1.15px;color:#abc59685;z-index:1}
.shuttle-lab-label i{height:4px;width:4px;background:#c8f68a;box-shadow:0 0 8px #c8f68a8a}.shuttle-lab-label>span{margin-left:auto;font-size:14px;color:#c8f68a8a}
.shuttle-reticle{position:absolute;width:15px;height:15px;border:1px solid #c6f68a26;border-right-color:transparent;border-bottom-color:transparent;z-index:1}.reticle-one{left:16%;top:77px}.reticle-two{right:14%;bottom:77px;transform:rotate(180deg)}
.shuttle-smash{background:linear-gradient(130deg,#d0f68a14,#143a2bc9);border-color:#c6f68a51;box-shadow:inset 0 1px #ecffd40a;color:#ddf9bd;font-weight:600}.shuttle-smash:hover{background:#c6f68a24;border-color:#dcffa4a8;box-shadow:0 0 16px #c6f68a0c}
.shuttle-view-button{background:linear-gradient(125deg,#dbffa0,#c4ed80);box-shadow:0 3px 18px #0a25144d,inset 0 1px #f8ffe799}
@media(max-width:700px){.shuttle-lab-label{top:28px;left:33%;right:30%;font-size:6px;letter-spacing:.7px;white-space:nowrap}.shuttle-lab-label>span{display:none}.shuttle-holo-grid{inset:30px 28% 45px 28%;background-size:25px 25px}.reticle-one{top:85px;left:33%}.reticle-two{right:34%;bottom:70px}}
/* Athlete-led hero: an articulated player is the focal point. */
.athlete-hero{min-height:390px;background:radial-gradient(ellipse at 76% 35%,#365c48 0%,#153d30 42%,#102f26 76%)}
.athlete-hero .shuttle-hero-copy{padding-top:63px;width:49%}
.athlete-stage{position:absolute;inset:0 -1% 0 39%;overflow:hidden;pointer-events:none}
.athlete-canvas{position:absolute;inset:-12px -20px 0 -20px}
.athlete-canvas canvas{display:block;width:100%;height:100%}
.athlete-backword{position:absolute;top:48px;left:10%;color:#c9f5bb07;-webkit-text-stroke:1px #c9f5bb20;font-size:clamp(64px,8vw,118px);font-weight:800;letter-spacing:-7px;font-style:italic;line-height:1}
.athlete-caption{position:absolute;bottom:25px;left:47%;display:flex;align-items:center;gap:8px;font-size:9px;letter-spacing:1.8px;color:#b8d4a8}
.athlete-caption>span:last-child{margin-left:16px;opacity:.6;font-size:8px}
.athlete-live-dot{height:5px;width:5px;border-radius:50%;background:#d0f68a;box-shadow:0 0 12px #d0f68a}
.athlete-fallback{position:absolute;inset:0;width:100%;height:100%}
@media(max-width:1100px){.athlete-caption>span:last-child{display:none}.athlete-hero .shuttle-hero-copy{padding-top:68px}.athlete-hero h2{font-size:28px}}
@media(max-width:700px){.athlete-hero{min-height:570px}.athlete-hero .shuttle-hero-copy{padding:26px 23px 310px;width:100%}.athlete-hero h2{font-size:29px}.athlete-hero .shuttle-hero-copy p{max-width:100%;font-size:12px}.athlete-stage{inset:222px -25px 8px -25px}.athlete-canvas{inset:-15px 0 -5px}.athlete-backword{top:24px;left:13%;font-size:74px}.athlete-caption{left:20px;bottom:26px;font-size:8px;letter-spacing:1px}.athlete-hero .shuttle-controls{bottom:13px;right:14px}}


.passes-page{display:grid;gap:24px}.passes-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 0}.passes-eyebrow{font-size:11px;font-weight:750;letter-spacing:.16em;color:var(--muted,#68726a)}.passes-heading h2{font-size:clamp(30px,4vw,46px);font-weight:650;line-height:1.13;letter-spacing:-.035em;margin:16px 0}.passes-heading h2 em{font-family:Georgia,serif;font-weight:400;color:#55734d}.passes-heading p{max-width:530px;color:#667369;line-height:1.6}.passes-notice{background:#edf2e7;border:1px solid #d9e2cf;padding:18px 22px;border-radius:14px}.passes-notice strong{font-size:14px;color:#24422d}.passes-notice p{font-size:12px;line-height:1.65;margin:6px 0 0;color:#59654f}.passes-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:12px}.passes-toolbar .passes-tabs{flex:1;min-width:280px;flex-wrap:wrap}.passes-tabs button{white-space:nowrap}.passes-tabs span{display:inline-grid;place-items:center;min-width:18px;margin-left:5px;font-size:10px;background:#e6edde;border-radius:5px}.passes-toolbar>label{display:grid;gap:6px;font-size:11px;color:#6c786f}.passes-toolbar input{padding:9px 12px;background:white;border:1px solid #dce2d9;border-radius:8px}.passes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:18px}.pass-card{background:#fff;border:1px solid #e1e5de;border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:10px}.pass-card-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.pass-card-top>strong{font-size:21px;color:#294735;white-space:nowrap}.pass-status{font-size:10px;font-weight:650;background:#eef1e9;padding:6px 8px;border-radius:5px;color:#4f5d45}.pass-status-held,.pass-status-pending{background:#fff1da;color:#826127}.pass-status-completed{background:#e0f0e6;color:#236044}.pass-status-rejected,.pass-status-invalid{background:#f8e7e2;color:#894433}.pass-card h3{font-size:19px;margin:3px 0 0}.pass-place{font-size:12px;line-height:1.6;color:#7a8077;margin:0}.pass-time{border-block:1px solid #edf0e8;padding:15px 0;margin:3px 0;display:grid;gap:5px}.pass-time strong{font-size:24px;letter-spacing:-.025em}.pass-time span{font-size:12px;color:#656e60}.pass-person,.pass-note,.pass-hold{font-size:12px;line-height:1.6;margin:0}.pass-person{color:#71786c}.pass-note{white-space:pre-wrap;overflow-wrap:anywhere}.pass-hold{color:#596d44;background:#f4f6ee;padding:10px;border-radius:7px}.pass-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:9px}.pass-actions .button{font-size:12px}.passes-empty{background:#fff;border:1px dashed #d9e0d3;border-radius:14px;text-align:center;padding:40px 20px;color:#788170;font-size:14px;line-height:1.65}.passes-empty h3{color:#3e4c37;margin:0 0 8px}.passes-error,.passes-success{padding:12px 16px;border-radius:8px;font-size:13px;line-height:1.6}.passes-error{background:#fff0eb;color:#9a4430;display:flex;justify-content:space-between;gap:10px}.passes-success{background:#e9f4e9;color:#2b633c}.passes-modal-backdrop{position:fixed;inset:0;background:#162a205c;backdrop-filter:blur(4px);z-index:150;display:flex;align-items:center;justify-content:center;padding:20px}.passes-modal{width:min(100%,520px);max-height:90dvh;overflow-y:auto;background:white;border-radius:20px;padding:30px;position:relative;box-shadow:0 20px 90px #112c2333}.passes-modal h3{font-size:23px;line-height:1.3;padding-right:24px;margin:0 0 16px}.passes-modal p{font-size:13px;color:#697265;line-height:1.6}.passes-modal .form>label{display:grid;gap:8px;font-size:12px;font-weight:600}.passes-modal input,.passes-modal select,.passes-modal textarea{width:100%;border:1px solid #dbe1d6;border-radius:8px;padding:11px;font:inherit}.passes-modal textarea{min-height:100px;resize:vertical}.passes-close{position:absolute;right:17px;top:14px;border:0;background:#f0f3eb;border-radius:50%;width:32px;height:32px;font-size:23px;color:#5e6858;cursor:pointer}@media(max-width:650px){.passes-heading{align-items:start;flex-direction:column}.passes-heading .button{width:100%}.passes-grid{grid-template-columns:1fr}.passes-toolbar .passes-tabs{min-width:100%}.passes-tabs button{font-size:11px;padding-inline:10px}.passes-modal{padding:24px}.passes-notice{padding:16px}}
.pass-approval-notice{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px;border:1px solid #d4dfc8;border-radius:14px;background:#f0f5e9}.pass-approval-notice p{max-width:680px;margin-top:5px;font-size:13px;color:#536147}.pass-approval-notice .button{flex-shrink:0}.pass-lifecycle{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;list-style:none;padding:0;margin:0}.pass-lifecycle li{padding:12px;background:#fff;border:1px solid var(--border);border-radius:10px;font-size:12px;color:var(--forest)}.pass-status-filter{display:grid;gap:6px;min-width:190px;font-size:12px}.pass-status-filter select{padding:9px 12px;background:#fff;border:1px solid var(--border);border-radius:8px;max-width:100%}.pass-participants{display:grid;gap:7px;padding:12px;border-radius:9px;background:#f5f7f2}.pass-participants p{display:grid;gap:2px;font-size:12px;color:#65715e}.pass-participants b{font-size:14px;color:var(--text);overflow-wrap:anywhere}.slot.has-booker{min-width:105px;max-width:155px;min-height:76px}.slot .slot-booker{display:block;max-width:135px;font-size:11px;line-height:1.45;white-space:normal;overflow-wrap:anywhere;font-weight:600}.slot .slot-pass-state{color:#795725;font-size:10px}.slot.has-booker:disabled{opacity:1}.booking-renter{color:var(--text)}.booking-pass-note{font-size:12px}.booking-pass-note .text-button{font-size:inherit}@media(max-width:650px){.pass-approval-notice{align-items:stretch;flex-direction:column}.pass-lifecycle{grid-template-columns:repeat(2,minmax(0,1fr))}.pass-status-filter{width:100%}.slot.has-booker{min-width:92px;max-width:130px}}

.finance-operations{padding:24px;margin-bottom:24px}.finance-operations-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.finance-operations-heading h2{font-size:30px;margin:6px 0}.finance-operations-heading p{margin:4px 0 20px;color:var(--muted,#67756f)}.finance-cash-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:6px 0 16px}.finance-cash-summary span,.finance-cash-summary b{display:block}.finance-cash-summary span{font-size:13px;color:var(--muted,#67756f);margin-bottom:6px}.finance-cash-summary b{font-size:18px}.finance-disclosure{border-top:1px solid var(--border,#e3e9e5);margin-top:14px;padding-top:8px}.finance-disclosure>summary{cursor:pointer;padding:14px 0;font-weight:650;min-height:44px}.finance-operation-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:8px 0 20px}.finance-operation-form label,.finance-request label{display:grid;gap:7px;font-size:13px;font-weight:600;min-width:0}.finance-operation-form input,.finance-operation-form select,.finance-request input{box-sizing:border-box;width:100%;max-width:100%;min-height:44px;border:1px solid var(--border,#dae3dc);background:white;border-radius:8px;padding:10px;color:inherit;font:inherit}.finance-operation-form .form-hint,.finance-operation-form [role]{grid-column:1/-1;margin:0}.finance-operation-form>.button{align-self:end;min-height:44px}.finance-request-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.finance-request{padding:18px;border:1px solid var(--border,#e3e9e5);border-radius:12px;min-width:0}.finance-request p{font-size:14px;margin:10px 0;overflow-wrap:anywhere}.finance-request small{display:block;color:var(--muted,#67756f);margin-bottom:16px}.finance-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.finance-actions .button{min-height:44px}.finance-operation-row{display:flex;justify-content:space-between;gap:16px;align-items:center;border-top:1px solid var(--border,#e3e9e5);padding:14px 0;font-size:14px}.finance-operation-row>span{min-width:0;overflow-wrap:anywhere}.finance-operation-row small{display:block;color:var(--muted,#67756f);margin-top:5px;font-size:12px}.finance-operation-row>b{white-space:nowrap}.member-payment-request{margin-bottom:24px;border-bottom:1px solid var(--border,#e3e9e5);padding-bottom:20px}.member-payment-request h2{font-size:19px}.finance-operation-form :focus-visible,.finance-disclosure>summary:focus-visible{outline:3px solid #418b73;outline-offset:3px}@media(max-width:700px){.finance-operations{padding:18px}.finance-cash-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-request-grid,.finance-operation-form{grid-template-columns:1fr}.finance-operations-heading{flex-wrap:wrap}.finance-operation-row{align-items:flex-start}.finance-operations-heading h2{font-size:26px}}

.clubs-page{display:grid;gap:22px}.clubs-intro{display:flex;justify-content:space-between;align-items:center;gap:24px;background:linear-gradient(115deg,#123b2f,#28513a);border-radius:15px;padding:30px;color:white}.clubs-intro .eyebrow{font-size:10px;color:#c0d6af}.clubs-intro h2{font-size:27px;line-height:1.4;letter-spacing:-.7px;margin:10px 0}.clubs-intro h2 em{color:var(--lime);font-style:normal}.clubs-intro p{color:#bed1c3;font-size:12px;max-width:440px}.clubs-intro .button{flex-shrink:0}.clubs-section-heading{display:flex;align-items:center;justify-content:space-between}.clubs-section-heading h2{font-size:16px}.clubs-section-heading>span{font-size:12px;color:var(--muted)}.clubs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.club-card{display:flex;align-items:center;gap:15px;min-height:115px;border:1px solid var(--border);border-radius:12px;background:white;padding:19px;text-align:left}.club-card.selected{background:#f0f6e9;border-color:#8ebd72;opacity:1;color:#23472d;cursor:default}.club-card:hover:not(:disabled){border-color:#82a87a;background:#f5f9f0}.club-card-icon{height:45px;width:45px;display:grid;place-items:center;border-radius:12px;background:#edf3e7;color:#43664a;flex-shrink:0}.club-card-copy{flex:1;min-width:0}.club-card-copy strong{display:block;font-size:14px;overflow-wrap:anywhere}.club-card-copy>span{display:block;color:#56744f;font-size:11px;margin:4px 0}.club-card-copy small{display:block;color:#7b867b;font-size:11px;line-height:1.6}.clubs-settings,.clubs-form{padding:24px}.clubs-settings h2,.clubs-form h3{font-size:16px}.clubs-settings .muted{font-size:12px;margin-top:4px}.clubs-form .form{margin-top:18px}.clubs-rename{margin-top:20px;max-width:480px}.clubs-permission-note{display:flex;align-items:center;gap:12px;border-radius:8px;background:#f5f8f2;color:#687c60;padding:14px;margin:20px 0;font-size:12px}.club-role-row{display:flex;align-items:center;gap:12px;padding:15px 0;border-top:1px solid var(--border)}.club-role-row>div{flex:1;min-width:0}.club-role-row strong{font-size:13px;display:block}.club-role-row small{font-size:11px;color:var(--muted);display:block;margin-top:4px}.club-role-row select{background:#fff;border:1px solid #dce3dc;border-radius:7px;min-height:44px;font-size:12px;padding:7px 12px;color:#31563b}.clubs-empty{font-size:13px;color:var(--muted)}.clubs-confirm{padding:18px;border:1px solid #d4dfc7;border-radius:10px;background:#f5f8f0;margin-top:15px}.clubs-confirm h3{font-size:14px}.clubs-confirm p{font-size:13px;margin:9px 0 15px}.club-switch:disabled{opacity:.75}.sidebar nav{overflow-y:auto;scrollbar-width:thin;scrollbar-color:#617b67 transparent;min-height:140px}.sidebar-bottom{padding-top:15px}.sidebar-tip{margin-bottom:12px}.app-shell[data-role="admin"] .sidebar-tip p{max-width:none}.role-readonly-note{background:#f0f5eb;border-radius:8px;padding:12px 15px;color:#68785f;font-size:12px;margin-bottom:15px}
@media(max-width:700px){.clubs-grid{grid-template-columns:1fr}.clubs-intro{align-items:flex-start;flex-direction:column;padding:24px}.clubs-intro h2{font-size:24px}.clubs-settings,.clubs-form{padding:18px}.clubs-settings>.row-between{flex-wrap:wrap;gap:14px}.club-role-row{flex-wrap:wrap}.club-role-row>div{min-width:60%}.club-role-row select{margin-left:42px}.club-role-row small{max-width:220px}}
@media(max-width:760px){.sidebar nav{min-height:0;overflow-y:hidden}.sidebar-bottom{padding-top:0}}

.picker-field{display:inline-block;min-width:0}.field>.picker-field{display:block;width:100%}.picker-trigger{display:flex;align-items:center;gap:10px;min-height:46px;width:100%;padding:10px 13px;border:1px solid #dce5df;border-radius:11px;background:#fff;color:var(--forest);font-size:14px;font-weight:500;text-align:left;white-space:nowrap}.picker-trigger>span{flex:1}.picker-trigger>svg:first-child{color:#668673}.picker-trigger>svg:last-child{color:#799082}.picker-trigger:hover,.picker-trigger[data-state=open]{border-color:#89a890;background:#f5f9f2;box-shadow:0 0 0 3px #bdd99826}.picker-popover{--rdp-accent-color:var(--forest);--rdp-accent-background-color:#edf6e4;--rdp-day-width:44px;--rdp-day-height:44px;--rdp-day_button-width:44px;--rdp-day_button-height:44px;--rdp-day_button-border-radius:12px;--rdp-selected-border:0;--rdp-today-color:var(--forest);--rdp-nav-height:48px;--rdp-nav_button-height:44px;--rdp-nav_button-width:44px;background:#fff;color:var(--text);padding:18px;border:1px solid #e1e9df;border-radius:20px;box-shadow:0 16px 50px #143c3024,0 3px 10px #143c300a;z-index:100;max-width:calc(100vw - 24px);max-height:var(--radix-popover-content-available-height);overflow:auto;animation:picker-enter .18s ease-out;transform-origin:var(--radix-popover-content-transform-origin)}.picker-eyebrow{font-size:10px;font-weight:700;letter-spacing:1.8px;color:#78897b;padding:2px 5px 10px}.picker-popover .rdp-root{font-size:14px}.picker-popover .rdp-month_caption{font-size:16px;font-weight:600;justify-content:center}.picker-popover .rdp-caption_label{text-transform:capitalize}.picker-popover .rdp-weekday{font-size:11px;font-weight:500;color:#718276;padding:9px 0}.picker-popover .rdp-day_button{font:inherit;transition:background .15s,box-shadow .15s;color:var(--text)}.picker-popover .rdp-day_button:hover{background:#edf4e8}.picker-popover .rdp-selected .rdp-day_button{background:var(--forest);color:#e7ffb7;font-weight:600;box-shadow:0 4px 10px #153e3220}.picker-popover .rdp-today:not(.rdp-selected) .rdp-day_button{box-shadow:inset 0 0 0 1px #bed29f;background:#f7faef}.picker-popover .rdp-outside{opacity:.35}.picker-popover .rdp-disabled{opacity:.2}.picker-popover .rdp-button_previous,.picker-popover .rdp-button_next{border:1px solid #e6ece4;border-radius:12px;background:#fafcf8}.picker-popover .rdp-chevron{width:18px;height:18px}.picker-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--border);margin-top:12px;padding-top:9px}.picker-footer button{background:#f1f6e9;color:var(--forest);font-size:12px;font-weight:600;padding:9px 12px;border:0;border-radius:9px;min-height:44px}.picker-footer>span{font-size:11px;color:#7f8c80}.month-picker-heading{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:12px}.month-picker-heading strong{font-size:22px;letter-spacing:-.5px}.month-picker-heading button{width:44px;height:44px;background:#f7faf4;border:1px solid #e5ece0;border-radius:11px;display:grid;place-items:center}.chevron-back{transform:rotate(180deg)}.month-picker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:292px;max-width:100%}.month-picker-grid button{min-height:48px;border:1px solid transparent;background:#f7f9f5;border-radius:10px;font-size:13px;display:flex;justify-content:center;align-items:center;gap:5px}.month-picker-grid button:hover{background:#eaf3e0}.month-picker-grid button[data-current=true]{border-color:#c4d8b1}.month-picker-grid button[aria-pressed=true]{background:var(--forest);color:var(--lime);border-color:var(--forest)}.time-picker{display:flex;align-items:center;gap:6px;min-height:46px;border:1px solid #dce5df;border-radius:11px;padding:0 10px;background:white;color:var(--forest)}.time-picker>svg{margin-right:2px;color:#668673}.time-part{height:44px;min-width:54px;display:flex;align-items:center;justify-content:space-between;gap:6px;border:0;background:none;border-radius:7px;font-size:15px;font-variant-numeric:tabular-nums;padding:0 7px}.time-part:hover,.time-part[data-state=open]{background:#edf4e8}.time-colon{color:#a4b0a6}.time-format{font-size:10px;color:#7b8a80;margin-left:auto;padding-left:5px}.time-menu{background:white;border:1px solid #e1e9df;border-radius:13px;box-shadow:0 12px 32px #143c3026;z-index:110;padding:5px;min-width:80px;max-height:min(290px,var(--radix-select-content-available-height));overflow:hidden;animation:picker-enter .15s ease-out}.time-option{height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 10px;border-radius:8px;font-size:14px;outline:none;font-variant-numeric:tabular-nums}.time-option[data-highlighted]{background:#edf4e8}.time-option[data-state=checked]{background:var(--forest);color:var(--lime)}.time-scroll{display:flex;justify-content:center;align-items:center;height:24px;color:#799082}.pass-date-filter{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted)}
@keyframes picker-enter{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:420px){.picker-popover{padding:13px}.time-picker{padding:0 6px;gap:1px}.time-picker>svg{width:15px}.time-part{min-width:45px;padding:0 4px}.time-format{display:none}}
@media(prefers-reduced-motion:reduce){.picker-popover,.time-menu{animation:none}.picker-trigger,.rdp-day_button{transition:none}}
/* Isolate the library calendar from the dashboard's global table styles. */
.picker-popover .rdp-root{--rdp-accent-color:var(--forest);--rdp-accent-background-color:#edf6e4;--rdp-day-width:44px;--rdp-day-height:44px;--rdp-day_button-width:44px;--rdp-day_button-height:44px;--rdp-day_button-border-radius:12px;--rdp-selected-border:0;--rdp-today-color:var(--forest);--rdp-nav-height:48px;--rdp-nav_button-height:44px;--rdp-nav_button-width:44px;width:308px}.picker-popover .rdp-month_grid{width:308px;min-width:0;table-layout:fixed;border-collapse:collapse}.picker-popover .rdp-month_grid td{padding:0;border:0;background:none;white-space:normal}.picker-popover .rdp-month_grid th{border:0;background:none;padding:9px 0;text-align:center}.picker-popover .rdp-week:hover{background:none}.picker-popover .rdp-day_button{border-radius:12px}.time-picker select[aria-hidden=true]{display:none}
.time-menu [data-radix-select-viewport]{max-height:min(240px,calc(var(--radix-select-content-available-height) - 58px));overflow-y:auto!important}
@media(max-width:700px){.heading-actions .picker-trigger{font-size:12px;padding:9px 8px;gap:6px}.heading-actions .picker-trigger>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.heading-actions .picker-trigger>svg{width:14px}}

/* Forms and data surfaces: loaded after the original component styles. */
:root {
  --muted: #5f7166;
  --polish-border: #d8e3da;
  --polish-tint: #f3f7ef;
}

.form, .field, .form-grid, .rate-grid, .pricing-fieldset,
.panel, .table-wrap, .finance-operations-heading > div,
.finance-cash-summary > div, .portal-summary > div {
  min-width: 0;
}

.form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid > .field > span:first-child {
  min-height: 1.4em;
  display: flex;
  align-items: flex-end;
  line-height: 1.4;
}
.cost-input-grid > .field:last-child { grid-column: 1 / -1; }
.field input, .field select, .field textarea { max-width: 100%; }
.field input[type=number], .finance-operation-form input[type=number] {
  font-variant-numeric: tabular-nums;
}
.field small, .form .form-hint, .detail-help, .table-note,
.stat-label, .stat-detail, .section-title p, .table-footer,
.person-copy span, .session-row-copy > span, .session-row-copy .venue-line,
.session-card > p, .session-card-bottom small, .session-card-people > span,
.payment-summary p, .wallet-balance small, .wallet-ledger > .form-hint,
.ledger-row p, .ledger-row small, .detail-meta, .cost-items span,
.cost-total small, .detail-footer p, .booking-summary p,
.court-info, .address, .amenities > span, .venue-price,
.club-card-copy small, .pass-place, .pass-person {
  color: var(--muted);
}
.field input::placeholder, .search-input input::placeholder { color: #69796c; }
.badge.gray { color: #5c6b60; }
.badge.orange { color: #8b541f; }
.stat.accent .stat-detail { color: #82682f; }
th, td small, .person-cell small { color: #5f7166; }

/* Equal label tracks keep the three price inputs on the same baseline. */
.cost-form > .pricing-fieldset { margin-bottom: 22px; }
.rate-grid { gap: 12px; align-items: stretch; margin-bottom: 18px; }
.rate-grid > .field, .rate-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  margin-bottom: 0;
  padding: 14px;
  border: 1px solid var(--polish-border);
  border-radius: 12px;
  background: var(--polish-tint);
}
.rate-grid > .field > span, .rate-label {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 4px;
  min-height: 2.8em;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--forest);
}
.rate-unit { font-size: 11px; font-weight: 400; color: var(--muted); }
.rate-grid input {
  width: 100%;
  min-width: 0;
  min-height: 46px;
  margin-top: auto;
  border: 1px solid #ceddce;
  border-radius: 8px;
  background: #fff;
  padding: 10px;
  color: var(--forest-deep);
  font-size: 16px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.rate-card { gap: 10px; }
.rate-card > .field { margin-bottom: 0; }
.rate-card > .field:first-child { flex: 1; }
.rate-card > .field + .field { margin-top: 8px; }
.rate-card .field > .rate-unit { line-height: 1.5; }
.rate-card .form-hint { margin-bottom: 0; font-size: 12px; }
.pricing-presets { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 18px; }
.pricing-presets button {
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid #d0dec8;
  border-radius: 8px;
  background: #f4f8ee;
  color: var(--forest);
  font-size: 12px;
  line-height: 1.5;
  text-align: left;
}
.pricing-presets button:hover { background: #e7f1db; }
.mixed-pricing-summary {
  padding: 16px;
  margin: 16px 0;
  border: 1px solid #d9e7cb;
  border-radius: 12px;
  background: #f1f7e9;
  color: var(--forest);
  font-size: 13px;
  line-height: 1.7;
}
.mixed-pricing-summary p + p { margin-top: 8px; }
.pricing-preview-note { margin-top: 12px; font-size: 12px; color: var(--muted); line-height: 1.7; }
.pricing-preview { margin-top: 18px; }
.pricing-preview > div { align-items: flex-start; flex-wrap: wrap; }
.pricing-preview > div > span { flex: 1 1 140px; min-width: 0; overflow-wrap: anywhere; }
.pricing-preview > div > b { margin-left: auto; font-variant-numeric: tabular-nums; }
.calculation-line { overflow-wrap: anywhere; }

/* Dialogs scroll independently and retain usable close / submit controls. */
.modal { max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; }
.modal-heading h2 { min-width: 0; overflow-wrap: anywhere; line-height: 1.4; }
.modal-heading .icon-button, .passes-close { width: 44px; height: 44px; flex-shrink: 0; }
.modal-heading { gap: 12px; }
.form-footer { flex-wrap: wrap; }
.form-footer .button { white-space: normal; text-align: center; }
.passes-modal { overscroll-behavior: contain; }
.passes-modal h3 { padding-right: 44px; overflow-wrap: anywhere; }
.passes-modal .form { display: grid; gap: 18px; padding: 20px 0 0; }
.passes-modal .form > p { margin: 0; }
.passes-modal input, .passes-modal select, .passes-modal textarea { min-height: 44px; min-width: 0; }
.passes-modal textarea:focus-visible { outline: 3px solid #79b457; outline-offset: 3px; }
.sponsor-section .sponsor-form, .clubs-form .form, .clubs-settings .clubs-rename, .community-panel > .form { padding: 0; }
.community-panel > .invitation-form { padding: 16px; }
.checkbox-field { min-height: 44px; }
.checkbox-field input, .attendance-row > input { flex-shrink: 0; }

/* Toolbar wrapping is explicit; wide data stays in its own scroll area. */
.table-toolbar, .toolbar-right, .court-toolbar { flex-wrap: wrap; }
.table-toolbar > *, .toolbar-right, .search-input, .search-input input,
.court-toolbar > *, .payment-filter label { min-width: 0; max-width: 100%; }
.table-toolbar .search-input { flex: 1 1 220px; }
.search-input input { flex: 1; }
.toolbar-right { gap: 10px; }
.toolbar-right select { max-width: 100%; }
.inline-search { max-width: calc(100% - 44px); }
.table-wrap { max-width: 100%; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: #9aae9b #f1f5ef; }
.tabs { max-width: 100%; }
.finance-toolbar .tabs { flex-wrap: wrap; overflow: visible; }
.table-footer { flex-wrap: wrap; }
.payment-filter select { max-width: 100%; }
.button, .small-button, .text-button, .tabs button, .slot,
.vote-select, .payment-filter select, .toolbar-right select { min-height: 44px; }
.text-button { min-width: 44px; }
.section-title { flex-wrap: wrap; }
.section-title > div { min-width: 0; }
.booking-request, .friend-row { flex-wrap: wrap; }
.friend-row > div:not(.avatar), .invite-row > div, .payment-summary > div,
.ledger-row > div, .attendance-person, .portal-welcome > div { min-width: 0; overflow-wrap: anywhere; }
.friend-search .field { margin-bottom: 0; }
.friend-search { margin-bottom: 18px; }

/* Numeric values may wrap inside cards, never push the page wider. */
.stat > strong, .portal-summary strong, .wallet-balance strong,
.finance-operations-heading h2, .finance-cash-summary b,
.session-card-bottom strong, .cost-items b, .cost-total strong {
  white-space: normal;
  overflow-wrap: anywhere;
  font-variant-numeric: tabular-nums;
}
.stat-icon { flex-shrink: 0; }
.stat-detail { line-height: 1.6; }
.finance-request .row-between { align-items: flex-start; flex-wrap: wrap; }
.finance-operation-row { flex-wrap: wrap; }
.finance-operation-row > span { flex: 1 1 180px; }
.finance-operation-row > b { margin-left: auto; }
.wallet-debt { flex-wrap: wrap; }
.cost-total { gap: 10px; flex-wrap: wrap; }
.sponsor-line > b { overflow-wrap: anywhere; }
.portal-session .row-between { flex-wrap: wrap; }
.portal-costs { overflow-wrap: anywhere; }

@media (max-width: 1100px) and (min-width: 761px) {
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stats-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .finance-cash-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .finance-request-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .button, .heading-actions .button, .small-button, .tabs button, .slot { min-height: 44px; }
  .finance-operation-form input, .finance-operation-form select, .finance-request input,
  .passes-modal input, .passes-modal select, .passes-modal textarea { font-size: 16px; }
  .passes-modal-backdrop { padding: 12px; }
  .passes-modal { max-height: calc(100dvh - 24px); padding: 22px; }
  .modal, .modal.wide { max-height: calc(100dvh - 24px); }
  .finance-toolbar .toolbar-right { width: 100%; }
  .finance-toolbar .toolbar-right > .button { flex: 1; }
  .form-footer > .button { flex: 1 1 120px; }
  .minutes-input input { min-height: 44px; }
  .portal-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal-summary > div:last-child { grid-column: 1 / -1; }
  .portal-tabs { flex-wrap: wrap; }
}

@media (max-width: 600px) {
  .rate-grid { grid-template-columns: 1fr; gap: 10px; }
  .rate-grid > .field > span, .rate-label { min-height: auto; }
  .rate-card { padding: 14px; }
  .rate-grid input { margin-top: 0; }
  .form-grid { grid-template-columns: 1fr; gap: 0; }
  .form-grid > .field > span:first-child { min-height: auto; }
  .pricing-fieldset { padding: 14px; }
  .ledger-row { flex-wrap: wrap; gap: 8px; }
  .ledger-row > div:first-child { flex-basis: 100%; }
  .ledger-row > div:last-child, .ledger-row > b { text-align: left; }
  .sponsor-line { gap: 10px; }
  .finance-actions .button { flex: 1 1 160px; white-space: normal; }
  .passes-toolbar .passes-tabs { min-width: 0; flex-basis: 100%; }
  .pass-date-filter { flex-wrap: wrap; min-width: 0; max-width: 100%; }
  .pass-date-filter .picker-trigger { max-width: 100%; }
}

@media (max-width: 420px) {
  .modal-heading { padding: 15px 16px; }
  .form, .session-detail { padding: 16px; }
  .modal-error { margin: 16px 16px 0; }
  .stat { padding: 14px 12px; }
  .stat > strong { font-size: 21px; letter-spacing: -.6px; }
  .stat-label, .stat-detail { font-size: 12px; }
  .finance-cash-summary b { font-size: 16px; }
  .wallet-balance { padding: 17px; }
  .wallet-balance strong { font-size: 27px; }
  .attendance-row { column-gap: 8px; row-gap: 10px; }
  .attendance-person { min-width: 140px; }
  .attendance-person strong { font-size: 13px; }
  .attendance-person small { font-size: 12px; }
  .attendance-row .share-price { margin-left: auto; font-size: 13px; }
  .minutes-input { font-size: 12px; }
  .passes-modal { padding: 20px; }
  .passes-modal h3 { font-size: 20px; }
  .passes-close { top: 12px; right: 12px; }
  .club-role-row select { max-width: calc(100% - 42px); }
}

/* Mixed rules need full labels inside the standard-width dialog. */
.rate-grid-mixed{grid-template-columns:1fr}.rate-grid-mixed .rate-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:18px}.rate-grid-mixed .rate-label{min-height:auto}.rate-grid-mixed .rate-card>.field+.field{margin-top:0}.rate-grid-mixed .form-hint{padding:10px;font-size:12px;line-height:1.6}.rate-grid-mixed .rate-unit{display:block;margin:4px 0 8px}
@media(max-width:600px){.rate-grid-mixed .rate-card{grid-template-columns:1fr;gap:12px}}

/* Court culture: restrained motion, generous space, useful mobile navigation. */
:root{--radius:18px}.brand-mark{background:linear-gradient(145deg,#e1ffa1,#bbed66);box-shadow:0 4px 16px #c9f77713}.brand-mark svg{transform:none}.brand{letter-spacing:-1.1px}.sidebar{background:linear-gradient(160deg,#102f27,#10271f)}.sidebar-tip{background:linear-gradient(135deg,#244a35,#1b3c2d);border:1px solid #c8eaad16}.topbar{background:#ffffffd9;backdrop-filter:blur(16px)}.main-content{animation:page-appear .22s ease-out}.panel,.stat,.session-card,.club-card,.venue-card{box-shadow:0 4px 18px #173c2804}.session-card,.club-card{transition:border-color .18s,box-shadow .18s,transform .18s}.session-card:hover,.club-card:hover:not(:disabled){box-shadow:0 10px 28px #173c2810;transform:translateY(-2px)}.button{border-radius:10px;min-height:44px}.button.primary{box-shadow:0 3px 9px #153e3212}.button:active:not(:disabled){transform:translateY(1px)}.brand-mark{flex-shrink:0}.brand-mark svg{width:27px;height:27px}.mobile-menu-button{display:none}.credits-link{font:inherit;background:none;border:0;padding:5px;margin-left:9px;text-decoration:underline;text-underline-offset:3px;color:#607b65}.design-credits{padding:28px;color:var(--forest)}.design-credits h3{margin:12px 0 20px;font-size:24px}.design-credits p{font-size:13px;line-height:1.8;color:#5c7161;margin-top:12px}.design-credits a{text-decoration:underline;text-underline-offset:3px}.shuttle-entrance{position:fixed;inset:0;z-index:45;pointer-events:none;overflow:hidden}.shuttle-entrance canvas{display:block;width:100%;height:100%}.app-update-notice{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:90;display:flex;gap:12px;align-items:center;width:max-content;max-width:calc(100vw - 28px);padding:11px 14px;border:1px solid #bad693;background:#f6ffe7;color:var(--forest);box-shadow:0 6px 30px #163e3226;border-radius:14px;font-size:12px}.app-update-notice button{border:0;background:var(--forest);color:#fff;border-radius:9px;padding:10px 13px;min-height:44px;white-space:nowrap;font-size:12px}.athlete-hero{background:radial-gradient(ellipse at 75% 30%,#365541 0%,#173b2d 36%,#102d24 76%)}.athlete-hero .shuttle-hero-copy{padding-top:67px;padding-bottom:45px}.athlete-hero h2{font-weight:700;letter-spacing:-1.6px}.athlete-backword{-webkit-text-stroke:1px #dcffb921;color:transparent}.athlete-caption{font-family:ui-monospace,SFMono-Regular,monospace;letter-spacing:1.4px}.athlete-model-status{position:absolute;inset:0;display:grid;place-content:center;gap:12px;text-align:center;color:#d0e4c3;font-size:12px}.athlete-model-status:before{content:"";width:60px;height:60px;justify-self:center;border:1px solid #d0f68a6b;border-radius:50%;box-shadow:0 0 0 15px #d0f68a06,0 0 50px #d0f68a14}.shuttle-primary{min-height:46px;border-radius:10px;padding-inline:18px}.shuttle-holo-grid{opacity:.5}.overview-banner{border-radius:22px}.overview-banner .next-session{padding-top:20px;padding-bottom:20px}.mobile-menu-content{padding:22px}.mobile-menu-club{font-size:16px;font-weight:600;line-height:1.5;margin-bottom:20px;overflow-wrap:anywhere}.mobile-menu-club small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:5px}.mobile-menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mobile-menu-grid button{min-height:85px;padding:13px;display:flex;flex-wrap:wrap;gap:9px;align-items:center;justify-content:space-between;border:1px solid #e1e9dd;border-radius:13px;background:#f8faf5;text-align:left;font-size:12px;color:var(--forest)}.mobile-menu-grid button>span{flex-basis:100%;order:2;font-weight:500}.mobile-menu-grid button>svg:last-child{opacity:.45}.mobile-menu-grid button.selected{background:var(--forest);color:var(--lime);border-color:var(--forest)}.mobile-menu-account{width:100%;margin-top:18px}.mobile-menu-account .avatar{width:28px;height:28px}@keyframes page-appear{from{opacity:.45;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(min-width:761px) and (max-width:1100px){.athlete-hero .shuttle-hero-copy{width:54%;padding-left:24px}.athlete-hero h2{font-size:27px}.athlete-stage{left:42%}.heading-actions .picker-field{width:100%}.athlete-caption{left:54%}}
@media(max-width:760px){.sidebar{padding:13px 18px 0;border-bottom:1px solid #bfea9214}.sidebar .brand{padding-bottom:13px;font-size:23px}.sidebar .brand-mark{width:34px;height:34px;border-radius:10px}.mobile-menu-button{position:absolute;top:10px;right:14px;display:flex;align-items:center;gap:7px;min-height:44px;padding:8px 12px;border:1px solid #b9d5b337;border-radius:11px;background:#ffffff06;color:#d6e5cd;font-size:12px}.sidebar nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-inline:-6px;padding:0 0 10px;overflow:visible;min-height:0}.sidebar nav>div{display:none;min-width:0}.sidebar nav>div:has([data-page=overview]),.sidebar nav>div:has([data-page=sessions]),.sidebar nav>div:has([data-page=courts]){display:block}.sidebar .discover-caption{display:none}.sidebar .nav-item{justify-content:center;width:100%;min-height:44px;font-size:11px;gap:6px;padding:8px 5px;border-radius:9px}.sidebar .nav-item svg{width:15px;height:15px}.app-shell[data-role=admin] .sidebar nav>div:has([data-page=votes]){display:block}.app-shell[data-role=treasurer] .sidebar nav>div:has([data-page=finance]){display:block}.topbar{height:48px}.topbar .top-account{min-height:44px}.main-content{padding-top:24px}.page-heading{display:block;margin-bottom:21px}.page-heading h1{font-size:28px}.page-heading p{max-width:none}.page-eyebrow{margin-bottom:5px}.heading-actions{max-width:none;width:100%;justify-content:flex-start;gap:9px;margin-top:16px}.heading-actions .picker-field{flex:1;max-width:205px}.heading-actions .picker-trigger{font-size:13px;gap:9px;padding:10px 12px;min-height:44px}.heading-actions .picker-trigger>svg{width:16px}.heading-actions .button{width:auto;min-height:44px;padding:10px 13px;font-size:12px}.heading-actions .export-button{display:none}.athlete-hero{min-height:555px}.athlete-hero .shuttle-hero-copy{padding:26px 22px 300px;width:100%}.athlete-hero h2{font-size:29px;line-height:1.3;letter-spacing:-1.1px;white-space:normal}.athlete-stage{inset:235px -18px 0 -18px}.athlete-canvas{inset:0 -5px 0}.athlete-backword{top:23px;left:13%;font-size:69px;letter-spacing:-5px}.athlete-hero .shuttle-controls{bottom:13px}.athlete-caption{bottom:27px;font-size:8px;left:18px}.overview-banner .next-session{align-items:flex-start;flex-wrap:wrap;gap:13px;padding:18px}.overview-banner .next-session-title{min-width:100%}.overview-banner .next-bottom{width:100%;justify-content:flex-end}.overview-banner .next-bottom .button{min-height:44px;font-size:12px}.overview-banner .next-bottom .avatar-stack{display:flex;margin-right:auto}.overview-banner .next-bottom .avatar-stack>span:last-child:not(.avatar){display:none}.overview-banner .next-session-title h3{font-size:14px}.overview-banner .next-session-title p{font-size:12px}.app-footer{align-items:flex-start;flex-direction:column;gap:4px}.credits-link{margin-left:0}.app-update-notice{align-items:flex-start}.app-update-notice>svg{display:none}}
@media(max-width:380px){.main-content{padding-inline:14px}.mobile-menu-content{padding:17px}.mobile-menu-grid{gap:8px}.heading-actions .picker-field{max-width:180px}.heading-actions .picker-trigger{font-size:12px;gap:6px}.heading-actions .button{font-size:11px;padding-inline:10px}}
@media(prefers-reduced-motion:reduce){.shuttle-entrance{display:none}.main-content{animation:none}.session-card:hover,.club-card:hover:not(:disabled){transform:none}}

@media(max-width:760px){.app-shell[data-role=treasurer] .sidebar nav>div:has([data-page=sessions]){display:none}}
/* Portal header uses explicit button colors and a two-row mobile layout. */
.portal-header{gap:16px;flex-wrap:wrap}.portal-header .brand{white-space:nowrap;flex-shrink:0}.portal-header>.button{color:var(--forest);background:#f6faef;border-color:#dce8d3}
@media(max-width:600px){.portal-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;padding:18px}.portal-header .brand{grid-row:1;grid-column:1 / -1}.portal-header>.button{font-size:12px;padding:10px 8px;white-space:normal;justify-content:center;min-width:0}.portal-header>button{grid-column:2;grid-row:2}.portal-header>a{grid-column:1;grid-row:2}}
/* A tiny court-side companion; only its button catches pointer input. */
.court-cat{position:fixed;left:16px;bottom:max(9px,env(safe-area-inset-bottom));width:88px;height:70px;z-index:38;pointer-events:none}.cat-pet{display:block;width:88px;height:70px;padding:0;border:0;background:transparent;pointer-events:auto;cursor:pointer;border-radius:20px}.cat-pet:focus-visible{outline:3px solid #93be56;outline-offset:3px;background:#edf6dfaa}.cat-sprite svg{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 2px 1px #153e3212)}.cat-leg{transform-box:fill-box;transform-origin:50% 0%;animation:cat-step .58s ease-in-out infinite alternate}.cat-leg-back{animation-delay:-.58s}.cat-tail{transform-origin:32px 48px;animation:cat-tail-sway 1.8s ease-in-out infinite alternate}.cat-head{animation:cat-nod .58s ease-in-out infinite alternate;transform-origin:83px 46px}.cat-mouth{display:none}.is-talking .cat-mouth{display:block}.court-cat:hover .cat-leg,.court-cat:focus-within .cat-leg,.is-talking .cat-leg{animation-play-state:paused}.cat-speech{position:absolute;bottom:74px;left:0;min-width:82px;max-width:170px;width:max-content;padding:9px 12px;border-radius:14px 14px 14px 3px;background:#fffdf4;color:#294d3a;border:1px solid #dce5ce;box-shadow:0 4px 16px #193e3210;font-size:12px;line-height:1.4;font-weight:600;text-align:center;pointer-events:none}.cat-toggle{position:fixed;right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:44px;height:44px;z-index:39;border:1px solid #cbd9c3;border-radius:50%;background:#f6faefec;color:#557649;box-shadow:0 3px 12px #153e3210;display:grid;place-items:center}.cat-toggle[aria-pressed=false]{opacity:.6}body:has(dialog[open],.passes-modal-backdrop,.picker-popover) .court-cat,body:has(dialog[open],.passes-modal-backdrop,.picker-popover) .cat-toggle{visibility:hidden}.app-footer,.portal-footer{padding-bottom:65px}@keyframes cat-step{from{transform:rotate(-16deg)}to{transform:rotate(16deg)}}@keyframes cat-tail-sway{from{transform:rotate(-7deg)}to{transform:rotate(10deg)}}@keyframes cat-nod{from{transform:translateY(0)}to{transform:translateY(1px)}}@media(prefers-reduced-motion:reduce){.cat-leg,.cat-tail,.cat-head{animation:none}}
.portal-group-note{font-size:13px;line-height:1.7;color:var(--muted);padding:14px 16px;background:#edf4e7;border:1px solid #dce7d3;border-radius:12px;margin:18px 0}
.club-manager-actions{margin:20px 0 16px}.clubs-settings>.clubs-empty{text-align:left;line-height:1.8}.clubs-settings>.clubs-empty p+p{margin-top:9px}.cat-speech{max-width:100px;width:100px}
@media(max-width:600px){.club-manager-actions>.button{flex:1 1 140px;white-space:normal;text-align:center}.clubs-settings>.row-between{flex-wrap:wrap;gap:12px}}
.illustrated-hero .athlete-stage{left:46%}.illustrated-hero .athlete-backword{top:20px;left:2%;font-size:112px;opacity:.6}.athlete-art-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.illustrated-hero .athlete-caption{left:54%}
@media(max-width:1100px) and (min-width:761px){.illustrated-hero .athlete-stage{left:45%}.illustrated-hero .athlete-backword{font-size:74px}}
@media(max-width:760px){.illustrated-hero .athlete-stage{inset:235px -12px 0}.illustrated-hero .athlete-backword{font-size:70px;left:8%}.illustrated-hero .athlete-caption{left:18px;bottom:18px}.illustrated-hero .shuttle-controls{bottom:13px}}

/* British Shorthair golden: eight walking poses, idle blink and meow. */
.court-cat.golden-cat{width:112px;height:100px;bottom:max(4px,env(safe-area-inset-bottom))}
.golden-cat .cat-pet{position:relative;width:100%;height:100%;border-radius:24px;touch-action:manipulation}
.golden-cat .cat-pet::before{content:"";position:absolute;left:14%;right:8%;height:7px;bottom:8px;background:#123c3225;border-radius:50%;filter:blur(3px);pointer-events:none}
.golden-cat .cat-sprite{width:100%;height:100%;transform-origin:center}
.golden-cat-frame{display:block;width:100%;height:100%;background-image:url('/art/golden-cat-atlas.png');background-size:400% 300%;background-repeat:no-repeat;background-position:0% 100%;animation:golden-cat-blink 5.8s steps(1,end) infinite;filter:drop-shadow(0 2px 1px #4d330d18)}
.golden-cat[data-walking=true]:not([data-paused=true]) .golden-cat-frame{animation:golden-cat-walk 1.12s steps(1,end) infinite}
.golden-cat.is-talking .golden-cat-frame{animation:golden-cat-meow .56s steps(1,end) infinite}
.golden-cat .cat-speech{bottom:102px;left:5px;width:100px;min-width:0;background:#fffcf3;border-color:#e6dcc4;color:#685136;box-shadow:0 6px 24px #70502612}
@keyframes golden-cat-walk{0%{background-position:0% 0%}12.5%{background-position:33.333333% 0%}25%{background-position:66.666667% 0%}37.5%{background-position:100% 0%}50%{background-position:0% 50%}62.5%{background-position:33.333333% 50%}75%{background-position:66.666667% 50%}87.5%{background-position:100% 50%}100%{background-position:0% 0%}}
@keyframes golden-cat-blink{0%,91%,97%,100%{background-position:0% 100%}93%,95%{background-position:33.333333% 100%}}
@keyframes golden-cat-meow{0%,100%{background-position:0% 100%}18%,62%{background-position:66.666667% 100%}35%,78%{background-position:100% 100%}}
@media(max-width:600px){.court-cat.golden-cat{width:96px;height:86px}.golden-cat .cat-speech{bottom:88px;left:0;width:96px}}
@media(prefers-reduced-motion:reduce){.golden-cat .golden-cat-frame,.golden-cat[data-walking=true]:not([data-paused=true]) .golden-cat-frame,.golden-cat.is-talking .golden-cat-frame{animation:none;background-position:0% 100%}.golden-cat.is-talking .golden-cat-frame{background-position:66.666667% 100%}}

/* Original articulated chibi rally. Each limb and racket remains a rigid shape. */
.chibi-hero{min-height:390px;background:radial-gradient(ellipse at 78% 38%,#365840 0,#173b2d 45%,#102d24 80%)}
.chibi-hero .shuttle-hero-copy{width:45%;padding:62px 0 70px 36px;position:relative;z-index:2}
.chibi-stage{position:absolute;inset:0 -8px 10px 41%;pointer-events:none}
.chibi-stage>svg{width:100%;height:100%;overflow:visible;display:block}
.chibi-backword{font-size:96px;font-weight:800;font-style:italic;letter-spacing:-5px;fill:transparent;stroke:#d9f5b21a;stroke-width:1;font-family:inherit}
.chibi-hero .athlete-caption{left:49%;bottom:23px;font-size:8px}
.chibi-hero .shuttle-controls{right:18px;bottom:14px}
.golden-cat-canvas{display:block;width:100%;height:100%;position:relative;pointer-events:none}
@media(min-width:761px) and (max-width:1100px){.chibi-hero .shuttle-hero-copy{width:45%;padding-left:23px}.chibi-hero h2{font-size:27px}.chibi-stage{left:39%;right:-18px}.chibi-hero .athlete-caption{left:47%;font-size:7px}.chibi-hero .athlete-caption>span:last-child{display:none}}
@media(max-width:760px){.chibi-hero{min-height:548px}.chibi-hero .shuttle-hero-copy{width:100%;padding:27px 23px 278px}.chibi-stage{inset:245px -8px 41px}.chibi-hero .athlete-caption{left:19px;bottom:24px;font-size:7px}.chibi-hero .athlete-caption>span:last-child{display:none}.chibi-hero .shuttle-controls{bottom:12px;right:14px}}
/* Golden's occasional encouragement; the bubble never captures clicks. */
.golden-cat .cat-speech.cat-quote{width:228px;max-width:min(228px,calc(100vw - 36px));padding:13px 15px;border-radius:17px 17px 17px 5px;font-size:14px;line-height:1.6;text-align:left;font-weight:500;overflow-wrap:anywhere;box-shadow:0 8px 28px #60421c1c;animation:cat-quote-in .22s ease-out both}.golden-cat .cat-quote-left{left:4px;right:auto}.golden-cat .cat-speech.cat-quote-right{left:auto;right:4px;border-radius:17px 17px 5px 17px}.cat-quote-name{display:block;font-size:9px;font-weight:700;letter-spacing:1.1px;color:#947144;margin-bottom:5px}.cat-quote small{display:block;font-size:11px;margin-top:5px;color:#826c4e}@keyframes cat-quote-in{from{opacity:0;transform:translateY(6px) scale(.97)}to{opacity:1;transform:none}}@media(max-width:600px){.golden-cat .cat-speech.cat-quote{width:200px;font-size:13px;padding:11px 13px}}@media(prefers-reduced-motion:reduce){.golden-cat .cat-speech.cat-quote{animation:none}}

.group-detail { display: grid; gap: 20px; min-width: 0; }
.clubs-settings.group-detail { gap: 18px; }
.group-kicker { color: #52735a; font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.clubs-settings.group-detail > .row-between { align-items: flex-start; flex-wrap: wrap; }
.clubs-settings.group-detail > .row-between h2 { margin-top: 5px; font-size: 22px; line-height: 1.45; overflow-wrap: anywhere; }
.group-facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.group-facts > div { padding: 19px; background: #fff; border: 1px solid #e1e9de; border-radius: 12px; min-width: 0; }
.clubs-settings .group-facts > div { background: #f7faf4; }
.group-facts span { display: block; font-size: 12px; color: var(--muted); }
.group-facts strong { display: block; font-size: 26px; color: var(--forest); margin-top: 6px; line-height: 1.5; font-variant-numeric: tabular-nums; }
.group-facts small { font-size: 12px; font-weight: 400; color: var(--muted); }
.group-next { padding: 22px; background: #f1f7e9; border: 1px solid #dbe7d1; border-radius: 12px; display: flex; align-items: center; justify-content: space-between; gap: 22px; }
.group-next > div { min-width: 0; }
.group-next h2, .group-next h3 { margin: 7px 0 12px; font-size: 17px; line-height: 1.5; color: var(--forest); overflow-wrap: anywhere; }
.group-next p { display: flex; align-items: center; gap: 7px; margin-top: 6px; font-size: 13px; color: #586e50; overflow-wrap: anywhere; }
.group-next > .button { flex-shrink: 0; }
.group-roster-panel { padding: 24px; }
.group-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.group-section-heading h2, .group-section-heading h3 { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-size: 16px; color: var(--forest); }
.group-section-heading p { margin-top: 6px; color: var(--muted); font-size: 12px; }
.group-roster { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 24px; padding: 0; margin: 16px 0 0; list-style: none; }
.group-person { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 16px 0; border-top: 1px solid var(--border); }
.group-person-copy { min-width: 0; flex: 1; }
.group-person-copy strong { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; font-size: 13px; overflow-wrap: anywhere; }
.group-person-copy > span { display: block; margin-top: 5px; color: var(--muted); font-size: 12px; }
.group-person select { max-width: 150px; min-height: 44px; border: 1px solid #d8e3d2; border-radius: 8px; background: #fff; padding: 8px; font-size: 12px; color: var(--forest); }
.group-you { background: #e9f3dc; color: #466634; font-size: 10px; font-weight: 500; padding: 2px 7px; border-radius: 5px; }
.clubs-settings.group-detail .clubs-permission-note { margin: 0; }
.clubs-settings.group-detail .club-manager-actions { margin: 0; }
.clubs-settings.group-detail .clubs-empty { margin: 0; }
.clubs-settings.group-detail .clubs-empty p { margin: 4px 0 0; }
.portal-welcome h1 { line-height: 1.4; overflow-wrap: anywhere; }
.portal-tabs { gap: 5px; flex-wrap: wrap; }
.portal-tabs button { min-height: 44px; }

@media (max-width: 1120px) {
  .clubs-settings .group-roster { grid-template-columns: 1fr; }
  .group-next { flex-wrap: wrap; gap: 16px; }
}
@media (max-width: 760px) {
  .group-detail { gap: 16px; }
  .group-facts { gap: 8px; }
  .group-facts > div { padding: 14px; }
  .group-facts strong { font-size: 23px; }
  .group-facts small { display: block; font-size: 11px; }
  .group-next { padding: 18px; }
  .group-roster-panel { padding: 18px; }
  .group-roster { grid-template-columns: 1fr; }
  .portal-tabs { width: 100%; }
  .portal-tabs button { flex: 1 1 auto; padding: 10px; font-size: 12px; }
  .clubs-settings.group-detail > .row-between h2 { font-size: 20px; }
}
@media (max-width: 420px) {
  .group-facts > div { padding: 12px 10px; }
  .group-facts span { font-size: 11px; }
  .group-next > .button { width: 100%; white-space: normal; }
  .group-person { flex-wrap: wrap; gap: 10px; }
  .group-person-copy { flex-basis: calc(100% - 55px); }
  .group-person > .badge, .group-person > select { margin-left: 48px; }
  .group-person select { max-width: calc(100% - 48px); }
}

.member-personal { margin: 22px 0; padding: 24px; border: 1px solid var(--border); border-radius: 16px; background: #f1f6eb; }
.member-personal-heading p, .member-personal-foot, .member-section-heading p { font-size: 14px; line-height: 1.65; color: var(--muted); }
.member-personal-heading p { margin: 7px 0 18px; }
.member-personal-heading h2 { font-size: 19px; line-height: 1.5; margin-top: 8px; overflow-wrap: anywhere; }
.member-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.member-metrics > div { min-width: 0; background: white; padding: 18px; border: 1px solid var(--border); border-radius: 12px; display: flex; flex-direction: column; gap: 8px; }
.member-metrics span { font-size: 13px; font-weight: 600; color: var(--forest); }
.member-metrics strong { font-size: clamp(20px,2.8vw,28px); line-height: 1.4; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.member-metrics small { font-size: 13px; line-height: 1.65; color: var(--muted); }
.member-metrics .text-button { margin-top: auto; padding-top: 12px; }
.member-personal .text-button { min-height: 44px; display: flex; align-items: center; gap: 5px; text-align: left; }
.member-personal-foot { display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; }
.member-section-heading { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 12px; margin-bottom: 12px; }
.member-section-heading > div { min-width: 0; }
.member-section-heading h2 { font-size: 20px; line-height: 1.45; overflow-wrap: anywhere; }
.member-section-heading h3 { font-size: 17px; line-height: 1.5; overflow-wrap: anywhere; }
.member-tab-count { margin-left: 7px; background: #fff0d4; color: #785013; padding: 2px 7px; border-radius: 20px; font-size: 12px; }
.member-request-history, .member-dues { margin-bottom: 28px; }
.member-request-history h2, .member-dues h2 { font-size: 19px; margin-bottom: 10px; }
.member-request-history > .form-hint, .member-dues > .form-hint { line-height: 1.7; margin-bottom: 16px; }
.member-request-card { padding: 18px; border: 1px solid var(--border); border-radius: 12px; margin-top: 12px; background: #fafbf7; overflow-wrap: anywhere; }
.member-request-card p { font-size: 14px; line-height: 1.65; margin: 7px 0; }
.member-request-card small { display: block; font-size: 12px; line-height: 1.7; color: var(--muted); }
.member-request-card summary { cursor: pointer; min-height: 44px; padding: 12px 0; font-size: 14px; }
.member-review-note { padding: 10px 12px; border-left: 3px solid #ab823d; background: #fff5e3; }
.member-request-status { color: var(--muted); }
.member-due-row { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 15px 0; border-bottom: 1px solid var(--border); font-size: 14px; }
.member-due-row > div { min-width: 0; overflow-wrap: anywhere; }
.member-due-row small { display: block; font-size: 12px; line-height: 1.7; color: var(--muted); margin-top: 5px; }
.member-due-row > b { color: #925120; }
.member-history { padding: 24px; }
.member-history-card { padding: 22px 0; border-top: 1px solid var(--border); }
.member-history-card > p { display: flex; align-items: flex-start; gap: 6px; font-size: 14px; line-height: 1.7; margin: 8px 0; color: var(--muted); }
.member-history-card > p svg { flex-shrink: 0; margin-top: 4px; }
.member-history-money { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; padding: 15px; border-radius: 10px; background: #f3f7ee; margin-top: 15px; }
.member-history-money span { font-size: 12px; color: var(--muted); }
.member-history-money strong { display: block; font-size: 17px; margin-top: 7px; color: var(--forest); overflow-wrap: anywhere; }
.member-empty-note { font-size: 14px; line-height: 1.7; color: var(--muted); margin: 14px 0; }
@media (max-width: 680px) {
 .member-personal, .member-history { padding: 17px; }
 .member-metrics { grid-template-columns: 1fr; gap: 10px; }
 .member-metrics > div { padding: 16px; }
 .member-metrics strong { font-size: 26px; }
 .member-personal-foot { align-items: flex-start; flex-direction: column; }
 .member-request-card { padding: 15px; }
 .member-history-money { gap: 8px; padding: 12px; }
 .member-history-money strong { font-size: 15px; }
}

.manager-finance-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.manager-finance-heading h2{font-size:22px;margin:6px 0;overflow-wrap:anywhere}.manager-finance-heading p,.manager-finance-context p{font-size:14px;color:var(--muted,#67756f);line-height:1.6}.manager-finance-stats .stat>strong{font-size:25px}.manager-finance-context{display:flex;gap:20px;align-items:center;justify-content:space-between;margin:0 0 22px}.manager-finance-context small{display:block;font-size:13px;margin-top:4px}.manager-finance-context .button{flex-shrink:0;min-height:44px}.manager-collection{margin-bottom:24px}.manager-debt-filters{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 23px}.manager-debt-filters label{font-size:13px;display:flex;gap:8px;align-items:center}.manager-debt-filters select{min-height:44px;border:1px solid var(--border,#dae3dc);border-radius:8px;background:white;color:inherit;padding:8px;font:inherit;max-width:100%}.manager-debt-filters>span{font-size:13px;color:var(--muted,#67756f);margin-left:auto}.manager-debt-list{padding:0 23px 20px;display:grid;gap:16px}.manager-debt-member{border:1px solid var(--border,#e3e9e5);border-radius:12px;overflow:hidden}.manager-debt-member-heading{padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f6f8f3}.manager-debt-member-heading>div:last-child{display:grid;justify-items:end}.manager-debt-member-heading small,.manager-debt-item small{display:block;color:var(--muted,#67756f);font-size:13px;line-height:1.55;margin-top:4px}.manager-debt-item{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--border,#e3e9e5);padding:16px 18px}.manager-debt-item>div:first-child{min-width:0;overflow-wrap:anywhere}.manager-debt-item-action{flex-shrink:0;text-align:right}.manager-debt-item-action .button{min-height:44px;margin-top:8px}.manager-debt-member-heading .text-button{min-height:44px}.manager-overview-money{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:center;gap:20px;background:#f5f8f1;border:1px solid var(--border,#e3e9e5);border-radius:12px;padding:20px;margin-bottom:24px}.manager-overview-money span{display:block;color:var(--muted,#67756f);font-size:13px;line-height:1.5}.manager-overview-money strong{display:block;font-size:20px;margin-top:7px;overflow-wrap:anywhere}.manager-overview-money .button{min-height:44px}.finance-receipt-reference{overflow-wrap:anywhere}.manager-finance-heading .button{min-height:44px}.manager-debt-filters select:focus-visible,.manager-collection button:focus-visible,.manager-finance-context a:focus-visible{outline:3px solid #418b73;outline-offset:3px}#finance-confirmations{scroll-margin-top:24px}@media(max-width:800px){.manager-overview-money{grid-template-columns:repeat(2,minmax(0,1fr))}.manager-finance-context{align-items:flex-start;flex-direction:column}.manager-debt-filters>span{width:100%;margin-left:0}}@media(max-width:520px){.manager-finance-heading{align-items:flex-start;flex-direction:column}.manager-finance-heading h2{font-size:20px}.manager-debt-list{padding:0 14px 14px}.manager-debt-filters{padding:14px}.manager-debt-filters label{width:100%;justify-content:space-between}.manager-debt-item{align-items:flex-start;flex-direction:column}.manager-debt-item-action{width:100%;display:flex;align-items:center;gap:10px;flex-wrap:wrap;text-align:left}.manager-debt-item-action .button{margin-top:0;margin-left:auto}.manager-debt-item-action small{margin:0}.manager-overview-money{padding:16px;gap:16px}.manager-overview-money .button{white-space:normal}.manager-finance-stats .stat>strong{font-size:23px}}
.manager-payment-deadline{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:13px;color:var(--muted,#67756f);margin-top:4px}.manager-payment-deadline>.text-button{min-height:44px;padding:6px 10px}.manager-deadline-form{width:100%;display:grid;gap:8px;padding:12px;background:#f6f8f3;border:1px solid var(--border,#e3e9e5);border-radius:8px}.manager-deadline-form label{display:grid;gap:7px;font-size:13px}.manager-deadline-form input{max-width:100%;min-width:0;min-height:44px;border:1px solid var(--border,#dae3dc);border-radius:8px;background:white;padding:8px;color:inherit;font:inherit}.manager-deadline-form .button{min-height:44px}.manager-deadline-form input:focus-visible{outline:3px solid #418b73;outline-offset:3px}#finance-review-queue{scroll-margin-top:24px}

.group-context{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px;margin:0 0 24px;border:1px solid #dce5d7;border-radius:18px;background:linear-gradient(115deg,#edf4e6,#fff 70%)}
.group-context-copy{display:flex;align-items:center;gap:14px;min-width:0;flex:1 1 280px}.group-context-icon{display:grid;place-items:center;flex:0 0 45px;height:45px;border-radius:14px;background:#173f32;color:#d4ed9d}.group-context-copy strong{display:block;font-size:20px;line-height:1.4;overflow-wrap:anywhere}.group-context-copy small{display:block;margin-top:5px;color:#627261;font-size:12px;line-height:1.5}.group-context-actions{display:flex;align-items:end;gap:10px;flex-wrap:wrap;max-width:100%}.group-context-actions label{display:grid;gap:5px;font-size:11px;font-weight:600;color:#586b52}.group-context select{min-height:44px;max-width:300px;width:100%;padding:9px 34px 9px 12px;border:1px solid #cbd8c4;border-radius:10px;background:#fff;color:#203b2b;font:inherit;font-size:13px}.group-context .button{min-height:44px}.group-context>p{width:100%;margin:0;color:#9f5038;font-size:12px}.finance-nav-count{border-radius:50px;background:#f0b47c;color:#243625;min-width:20px;padding:2px 5px;font-size:10px;margin-left:auto;text-align:center}
@media(max-width:760px){.group-context{padding:17px;gap:16px;margin-bottom:18px}.group-context-copy strong{font-size:17px}.group-context-actions{width:100%;align-items:stretch}.group-context-actions label{flex:1 1 170px}.group-context select{max-width:none}.group-context-actions>.button{flex:1 1 110px;justify-content:center}.group-context .group-kicker{font-size:9px}}

/* The group picker supplies the scope heading; avoid repeating it before the same ledger. */
.group-context + .manager-finance-heading{display:none}
.member-portal .portal-header{padding:15px 20px;margin-bottom:18px}
.member-portal .group-context{padding:16px 20px;margin-bottom:18px}
.member-portal .portal-welcome{margin-bottom:12px;gap:12px}
.member-portal .portal-welcome .avatar{width:42px;height:42px;font-size:15px}
.member-portal .portal-welcome h1{font-size:20px}
.member-portal .member-personal{padding:18px;margin:16px 0}
.member-portal .member-personal-heading h2{font-size:16px;margin-top:3px}
.member-portal .member-personal-heading p{margin:3px 0 12px;font-size:12px}
.member-portal .member-metrics>div{padding:14px;gap:5px}
.member-portal .member-metrics small{font-size:12px;line-height:1.5}
.member-portal .member-metrics .text-button{padding-top:6px}
.member-portal .member-personal-foot{margin-top:4px;font-size:12px}
.member-portal .portal-tabs{display:flex;overflow-x:auto;max-width:100%;margin:16px 0;gap:3px}
.member-portal .portal-tabs button{flex-shrink:0;font-size:13px;white-space:nowrap}
@media(max-width:680px){.member-portal .group-context{padding:15px}.member-portal .member-personal{padding:14px}.member-portal .member-metrics{grid-template-columns:1fr 1fr}.member-portal .member-metrics>div:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr auto}.member-portal .member-metrics>div:last-child small,.member-portal .member-metrics>div:last-child button{grid-column:1/-1}.member-portal .member-metrics strong{font-size:22px}.member-portal .member-personal-heading h2{font-size:14px}.member-portal .portal-welcome h1{font-size:18px}.member-portal .member-metrics>div{padding:12px}.member-portal .member-metrics span{font-size:11px}.member-portal .member-personal-foot{gap:0}}

.group-context-actions label{min-width:0}
.group-picker-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:260px;max-width:100%;min-height:44px;padding:10px 12px;border:1px solid #cbd8c4;border-radius:10px;background:#fff;color:#203b2b;font:inherit;font-size:13px;text-align:left;cursor:pointer}
.group-picker-trigger>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.group-picker-trigger>span:last-child{flex-shrink:0;display:flex}
.group-picker-trigger:focus-visible{outline:2px solid #286347;outline-offset:3px}
.group-picker-trigger:disabled{opacity:.6;cursor:default}
.group-picker-menu{z-index:1000;box-sizing:border-box;width:var(--radix-select-trigger-width);min-width:220px;max-width:calc(100vw - 24px);max-height:min(280px,var(--radix-select-content-available-height));overflow:hidden;background:#fff;border:1px solid #d4dfd0;border-radius:12px;box-shadow:0 10px 30px #18342626;color:#203b2b}
.group-picker-options{padding:5px}
.group-picker-option{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:9px 10px;border-radius:7px;font-size:13px;cursor:pointer;outline:none}
.group-picker-copy{min-width:0;line-height:1.4;overflow-wrap:anywhere}
.group-picker-copy small{display:block;font-size:11px;color:#60725d;margin-top:3px}
.group-picker-option[data-highlighted]{background:#edf4e6}
.group-picker-option[data-state=checked]{background:#e2efdb;font-weight:600}
.group-picker-scroll{display:flex;justify-content:center;height:22px;background:#f6f8f3}
@media(max-width:760px){.group-picker-trigger{width:100%;font-size:14px}.group-picker-menu{min-width:0}}

/* Short compositor-only movement keeps the menu attached to its trigger. */
.group-picker-menu{transform-origin:var(--radix-select-content-transform-origin);--group-menu-offset:-5px}
.group-picker-menu[data-side=top]{--group-menu-offset:5px}
.group-picker-menu[data-state=open]{animation:group-menu-in 160ms cubic-bezier(.16,1,.3,1) both}
.group-picker-menu[data-state=closed]{animation:group-menu-out 100ms ease-in both;pointer-events:none}
.group-picker-option{transition:background-color 100ms ease}
.group-picker-trigger>span:last-child,.sidebar-refined .club-switch>svg:last-child{transition:transform 160ms ease}
.group-picker-trigger[data-state=open]>span:last-child{transform:rotate(180deg)}
@keyframes group-menu-in{from{opacity:0;transform:translateY(var(--group-menu-offset)) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes group-menu-out{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(var(--group-menu-offset)) scale(.985)}}
.group-switch-progress{position:fixed;z-index:100;top:18px;left:calc(50% + 126px);transform:translateX(-50%);display:flex;align-items:center;gap:10px;max-width:calc(100vw - 300px);padding:12px 16px;border:1px solid #cdddc7;border-radius:12px;background:#fff;color:#284c37;box-shadow:0 6px 24px #173f321a;font-size:13px;line-height:1.5;animation:group-progress-in 140ms ease-out 120ms both;pointer-events:none}
.group-switch-progress>svg{flex-shrink:0;animation:group-progress-spin 850ms linear infinite}
.group-switch-progress span{min-width:0;overflow-wrap:anywhere}
@keyframes group-progress-in{from{opacity:0}to{opacity:1}}
@keyframes group-progress-spin{to{transform:rotate(360deg)}}
@media(max-width:760px){.group-switch-progress{top:auto;bottom:24px;left:50%;max-width:calc(100vw - 32px);width:max-content}}
@media(prefers-reduced-motion:reduce){.group-picker-menu[data-state],.group-switch-progress,.group-switch-progress>svg{animation:none}.group-picker-option,.group-picker-trigger>span:last-child,.sidebar-refined .club-switch>svg:last-child{transition:none}}

.play-hub{display:grid;gap:22px;min-width:0}.play-hero{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:32px;border:1px solid #dfe6d6;border-radius:16px;background:#edf2e6;color:#214d3a;overflow:hidden}.play-hero .eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#526e49}.play-hero h2{font-size:30px;line-height:1.28;letter-spacing:-.9px;margin:12px 0}.play-hero h2 em{font-style:normal;color:#7b5136}.play-hero p{font-size:13px;line-height:1.7;color:#5b6c56;max-width:465px}.play-hero-mark{display:flex;flex-direction:column;align-items:center;gap:16px;transform:rotate(-8deg);padding:24px;border:1px solid #bbccab;border-radius:50%;width:155px;height:155px;justify-content:center;flex-shrink:0;color:#42744a}.play-hero-mark span{font-size:8px;letter-spacing:1.6px;font-weight:700}.play-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.play-tabs{display:flex;gap:5px;padding:5px;background:#edf0e8;border-radius:12px}.play-tabs button{border:0;background:transparent;color:#65745f;display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 17px;border-radius:8px;font-size:13px;font-weight:600}.play-tabs button.active{background:#fff;color:#204b35;box-shadow:0 1px 4px #243f2410}.play-tabs button:hover{color:#123f2c}.play-content{display:grid;gap:20px;min-width:0}.play-section-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.play-section-heading h3{font-size:17px;line-height:1.5;margin:0}.play-section-heading p{font-size:12px;color:#6a7565;line-height:1.65;margin:5px 0 0}.play-panel{padding:24px}.play-panel>h3{font-size:17px;margin:0 0 10px}.play-form{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}.play-hub label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:600;min-width:0}.play-hub input:not([type=checkbox]),.play-hub textarea,.play-hub select{width:100%;min-height:44px;border:1px solid #d5ddce;border-radius:8px;background:#fff;padding:10px 12px;font:inherit;font-size:13px;color:#304b35;box-sizing:border-box}.play-hub textarea{resize:vertical}.play-hub label small{font-weight:400;font-size:11px;line-height:1.6;color:#6a7565}.play-span{grid-column:1/-1}.play-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.play-hub .button{min-height:42px;white-space:normal}.play-hub button:focus-visible,.play-hub input:focus-visible,.play-hub select:focus-visible,.play-hub textarea:focus-visible{outline:3px solid #61813f;outline-offset:3px}.play-feedback{padding:14px 18px;border-radius:10px;font-size:13px;line-height:1.6;display:flex;align-items:flex-start;gap:10px}.play-feedback svg{flex-shrink:0;margin-top:2px}.play-feedback.error{background:#fff0e9;color:#8c3820;border:1px solid #edc9bc}.play-feedback.success{background:#edf5e7;color:#35552b;border:1px solid #c8dcc0}.play-loading{padding:50px 20px;text-align:center;font-size:14px;color:#63745b}.play-filters{display:flex;gap:8px;flex-wrap:wrap}.play-filters button{border:1px solid #dce1d5;border-radius:100px;padding:10px 15px;min-height:42px;background:white;font-size:12px;color:#65715d}.play-filters button.active{color:#f6f9ed;background:#28523b;border-color:#28523b}.play-recruit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.play-recruit-card{padding:22px;min-width:0;display:flex;flex-direction:column;gap:14px}.play-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.play-kicker{font-size:10px;color:#6b7a5e;letter-spacing:1px;font-weight:700;text-transform:uppercase;overflow-wrap:anywhere}.play-recruit-card h3{font-size:20px;margin:0;line-height:1.4;overflow-wrap:anywhere}.play-detail{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.5;margin:0;color:#586b54}.play-detail svg{flex-shrink:0;margin-top:1px}.play-terms{background:#f6f7f1;padding:13px 14px;border-radius:8px;display:grid;gap:9px}.play-terms p{display:grid;grid-template-columns:66px 1fr;gap:8px;margin:0;font-size:12px;line-height:1.6}.play-terms strong{font-size:11px;color:#6c7860;font-weight:500}.play-terms span{overflow-wrap:anywhere;color:#374a32}.play-note{font-size:12px!important;color:#6c7565;line-height:1.65;margin:0;overflow-wrap:anywhere}.play-capacity{margin-top:auto}.play-capacity>span{display:block;font-size:11px;color:#65765a;margin-bottom:8px}.play-capacity>div{height:5px;border-radius:4px;background:#e8eddf;overflow:hidden}.play-capacity i{display:block;height:100%;border-radius:4px;background:#8fae5b}.play-status{display:flex;align-items:flex-start;gap:7px;color:#3f6434;font-size:12px;line-height:1.65;margin:0}.play-status svg{flex-shrink:0;margin-top:2px}.play-apply{border-top:1px solid #e1e6db;padding-top:18px;display:grid;gap:12px}.play-apply p{font-size:12px;line-height:1.6;color:#62715a;margin:0}.play-consent{flex-direction:row!important;align-items:flex-start;line-height:1.6!important;font-weight:400!important}.play-consent input{flex-shrink:0;margin-top:3px;width:16px;height:16px;accent-color:#34583b}.play-application{display:flex;align-items:center;gap:12px;padding:18px 0;border-top:1px solid #e5e9de}.play-application:first-of-type{margin-top:16px}.play-application-copy{flex:1;min-width:0}.play-application-copy strong{font-size:13px;display:block;overflow-wrap:anywhere}.play-application-copy span{display:block;margin-top:4px;font-size:11px;color:#6b7862}.play-application-copy p{font-size:12px;color:#4c6045;margin:6px 0 0;overflow-wrap:anywhere;line-height:1.6}.play-session-label{max-width:560px}.play-roster-heading{margin:24px 0 16px}.play-roster-heading h3{font-size:14px}.play-roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:20px}.play-roster>label{flex-direction:row;align-items:center;padding:12px;gap:9px;border:1px solid #e0e6d8;border-radius:9px;background:#fff;cursor:pointer}.play-roster>label.selected{background:#f0f5e8;border-color:#a5bd8e}.play-roster input{width:16px;height:16px;margin:0;accent-color:#355b3a;flex-shrink:0}.play-roster>label>span:last-child{min-width:0;overflow-wrap:anywhere}.play-roster small{display:block;font-size:10px;margin-top:3px}.play-panel>.play-actions{margin-bottom:14px}.play-suggestions{display:grid;gap:16px}.play-pair-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.play-court{padding:20px;background:#204b37;color:#f8f9eb;border-radius:12px;min-width:0}.play-court-label{display:flex;justify-content:space-between;gap:10px;color:#cae0b0;font-size:10px;letter-spacing:1px}.play-court-label span{letter-spacing:0;color:#c7d2bd}.play-teams{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin:24px 0}.play-teams>div:last-child{text-align:right}.play-teams strong{font-size:15px;line-height:1.6;display:block;overflow-wrap:anywhere}.play-teams span{font-size:10px;color:#bfceb4;display:block;margin-top:7px}.play-teams>b{font-size:10px;color:#b7d77e;border:1px solid #618367;padding:7px;border-radius:50%}.play-court-footer{padding-top:15px;border-top:1px dashed #648167;display:flex;align-items:center;gap:12px;justify-content:space-between}.play-court-footer small{color:#c0ceb7;line-height:1.6;font-size:10px}.play-court-footer .button{background:#e5edcd;color:#284f35;border-color:#e5edcd;font-size:11px;flex-shrink:0}.play-waiting{padding:14px 18px;display:flex;align-items:center;gap:10px;background:#f3eee0;border-radius:9px;color:#766344}.play-waiting p{font-size:12px;line-height:1.6;margin:0}.play-waiting svg{flex-shrink:0}.play-form fieldset{padding:15px;border:1px solid #dce4d2;border-radius:10px;display:grid;gap:14px;min-width:0}.play-form legend{font-size:12px;font-weight:700;padding:0 7px;color:#46613b}.play-rank-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:20px;align-items:start}.play-ranking{padding:0 22px;min-width:0}.play-rank-head{display:flex;justify-content:space-between;gap:10px;padding:20px 0 14px;color:#758267;font-size:9px;letter-spacing:1.2px}.play-rank-row{display:flex;align-items:center;gap:12px;border-top:1px solid #e5e8de;padding:16px 0}.play-rank-position{font-size:12px;color:#8a947f;min-width:20px;font-variant-numeric:tabular-nums}.play-rank-name{flex:1;min-width:0}.play-rank-name strong{font-size:13px;display:block;overflow-wrap:anywhere}.play-rank-name span,.play-rank-score span{display:block;font-size:10px;color:#758168;margin-top:5px}.play-rank-score{text-align:right;flex-shrink:0}.play-rank-score strong{font-size:20px;letter-spacing:-.5px;color:#2c5837;font-variant-numeric:tabular-nums}.play-rank-about{padding:25px;background:#eeeeda;border-radius:12px;color:#516344}.play-rank-about h3{font-size:18px;line-height:1.5;margin:13px 0}.play-rank-about p{font-size:12px;line-height:1.8;margin:12px 0 0}.play-match-list{margin-top:18px;display:grid;gap:12px}.play-match{padding:18px;border:1px solid #e2e7d9;border-radius:10px;background:#fcfdf9}.play-match-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:#718064}.play-match-meta>span:first-child{overflow-wrap:anywhere}.play-match-score{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:15px;padding:18px 0}.play-match-score>strong{font-size:13px;font-weight:600;line-height:1.6;overflow-wrap:anywhere}.play-match-score>strong:last-child{text-align:right}.play-match-score>b{font-size:24px;letter-spacing:-1px;color:#385a32;font-variant-numeric:tabular-nums;white-space:nowrap}.play-match-score>b>span{display:inline-block;padding:0 10px;color:#9caa8d;font-weight:400}.play-match>.play-note{margin-top:8px}.play-void{display:grid;gap:12px;margin-top:15px;padding-top:15px;border-top:1px solid #dee4d5}.play-hub .empty{padding:35px 18px}.play-hub button{cursor:pointer}.play-hub button:disabled{cursor:default}
@media(max-width:1000px){.play-roster{grid-template-columns:1fr 1fr}.play-rank-layout{grid-template-columns:minmax(0,1fr) 220px}.play-rank-about{padding:20px}.play-section-heading{align-items:flex-start}.play-section-heading>.button{flex-shrink:0}}
@media(max-width:700px){.play-hero{padding:25px;gap:14px}.play-hero h2{font-size:25px}.play-hero-mark{width:90px;height:90px;padding:10px}.play-hero-mark svg{width:36px;height:36px}.play-hero-mark span{display:none}.play-toolbar{gap:7px}.play-tabs{flex:1;gap:0;padding:4px}.play-tabs button{flex:1;font-size:11px;gap:5px;padding:9px 8px}.play-tabs button svg{width:15px}.play-refresh-label{display:none}.play-toolbar>.button{padding:10px}.play-recruit-grid,.play-pair-grid,.play-rank-layout{grid-template-columns:1fr}.play-section-heading{flex-wrap:wrap;gap:12px}.play-panel{padding:19px}.play-form{grid-template-columns:1fr}.play-span{grid-column:auto}.play-recruit-card{padding:19px}.play-application{flex-wrap:wrap}.play-application>.play-actions{margin-left:44px}.play-roster{gap:8px}.play-roster>label{padding:10px;gap:7px}.play-roster .avatar{display:none}.play-rank-about{padding:22px}.play-rank-about p{font-size:12px}.play-match-score{gap:10px}.play-match-score>b{font-size:21px}.play-match-score>b>span{padding:0 7px}.play-match-score>strong{font-size:12px}.play-match-meta{flex-wrap:wrap}.play-match{padding:14px}.play-tabs .count-pill{display:none}.play-rank-row{gap:10px}.play-ranking{padding:0 18px}.play-rank-row .avatar{width:32px;height:32px;font-size:10px}}
@media(max-width:390px){.play-hero-mark{display:none}.play-tabs button{padding:9px 6px;font-size:10px}.play-tabs button svg{display:none}.play-roster{grid-template-columns:1fr}.play-application>.play-actions{margin-left:0}}
.recruit-rank-filter{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,1fr);gap:22px;padding:20px;background:#f3f6ec;border:1px solid #dfe7d6;border-radius:14px}.recruit-rank-filter>div>label{max-width:340px}.recruit-rank-filter .play-actions{margin-top:12px}.recruit-rank-filter p{font-size:12px;line-height:1.7;color:#586d4c;margin-bottom:0}.recruit-rank-guide summary{cursor:pointer;min-height:44px;font-size:13px;line-height:1.6;font-weight:600;padding:10px 0}.recruit-rank-guide dl{display:grid;gap:12px;margin:12px 0}.recruit-rank-guide dt{font-size:13px;font-weight:700;color:#305431}.recruit-rank-guide dd{font-size:12px;line-height:1.6;margin:3px 0 0;color:#64715d}.recruit-rank-fields{display:grid;gap:14px;padding:16px;border:1px solid #cdddc2;border-radius:12px;margin:0;min-width:0;background:#fafcf6}.recruit-rank-fields legend{font-size:13px;font-weight:700;padding:0 8px}.recruit-rank-fields>small{font-size:12px;color:#5e7255;line-height:1.65}.recruit-rank-range{display:grid;grid-template-columns:1fr 1fr;gap:14px}.play-terms .recruit-rank-label{font-weight:700;color:#245332}.play-hub select{font-size:14px}.play-apply>p[role=alert]{color:#963c20;background:#fff0e6;padding:10px;border-radius:8px}
@media(max-width:700px){.recruit-rank-filter{grid-template-columns:1fr;padding:16px;gap:8px}.recruit-rank-range{grid-template-columns:1fr}.recruit-rank-filter>div>label{max-width:none}.play-hub select,.play-hub input:not([type=checkbox]),.play-hub textarea{font-size:16px}}

.court-fund{border-top:1px solid var(--border,#e3e9e5);margin-top:22px;padding-top:24px}.court-fund-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.court-fund-heading h3{font-size:19px;line-height:1.4;margin:7px 0}.court-fund-heading p,.court-payment-details>p{font-size:14px;line-height:1.6;color:var(--muted,#67756f);margin:8px 0}.court-fund-heading>.badge{white-space:normal;text-align:right;flex-shrink:0;max-width:40%}.court-payment-details{border-top:1px solid var(--border,#e3e9e5);margin-top:16px}.court-payment-details>summary{cursor:pointer;min-height:48px;padding:14px 0;font-size:14px;font-weight:600;line-height:1.6}.court-fund-form{border:0;min-width:0;padding:8px 0 18px;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.court-fund-form label,.court-month-field{display:grid;gap:7px;font-size:13px;font-weight:600;align-content:start;min-width:0}.court-fund-form input:not([type=checkbox]),.court-fund-form select{width:100%;max-width:100%;min-width:0;min-height:44px;border:1px solid var(--border,#dae3dc);border-radius:8px;background:#fff;color:inherit;padding:10px;font:inherit}.court-month-field .picker-trigger{min-height:44px;width:100%;justify-content:space-between}.court-form-wide,.court-form-hint{grid-column:1/-1}.court-form-hint{font-size:13px;color:var(--muted,#67756f);line-height:1.6;margin:0}.court-fund-form .button{min-height:44px;align-self:end;white-space:normal}.court-fund-form .court-receipt-confirm{display:flex;align-items:flex-start;gap:10px;line-height:1.6;font-weight:400;min-height:44px}.court-receipt-confirm input{width:18px;height:18px;margin-top:2px;flex-shrink:0;accent-color:#3f7049}.court-payment-list{display:grid;gap:18px;margin-top:18px}.court-payment-record{padding:20px;border:1px solid var(--border,#e3e9e5);border-radius:12px;background:#fff;min-width:0}.court-payment-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.court-payment-heading>div{min-width:0;overflow-wrap:anywhere}.court-payment-heading h4{font-size:17px;margin:7px 0}.court-payment-heading>strong{font-size:20px;white-space:nowrap}.court-payment-heading small,.court-payment-note,.court-allocation-row small{font-size:13px;color:var(--muted,#67756f);line-height:1.6}.court-payment-note{overflow-wrap:anywhere;margin:12px 0}.court-payment-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}.court-payment-breakdown dt{color:var(--muted,#67756f);font-size:12px;line-height:1.5}.court-payment-breakdown dd{font-size:16px;font-weight:600;margin:6px 0 0;overflow-wrap:anywhere}.court-advance-note,.court-advance-preview{border-radius:10px;background:#fbf3e6;border:1px solid #ecdbc1;padding:13px 15px;color:#865c2e}.court-advance-note{font-size:14px;line-height:1.6;overflow-wrap:anywhere}.court-advance-note p{margin:4px 0 0;font-size:13px}.court-advance-preview span,.court-advance-preview strong,.court-advance-preview small{display:block}.court-advance-preview span{font-size:13px}.court-advance-preview strong{font-size:22px;margin:5px 0}.court-advance-preview small{font-size:12px;line-height:1.6}.court-allocation-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-top:1px solid var(--border,#e3e9e5);padding:12px 0;font-size:13px;line-height:1.6}.court-allocation-row>span{min-width:0;overflow-wrap:anywhere}.court-allocation-row small{display:block}.court-allocation-row>b{white-space:nowrap}.court-fund :focus-visible{outline:3px solid #418b73;outline-offset:3px}.court-fund input:disabled,.court-fund select:disabled{opacity:.65}.court-fund [role=alert],.court-fund [role=status]{font-size:13px;line-height:1.6;margin:12px 0}@media(max-width:700px){.court-fund-heading{flex-direction:column}.court-fund-heading>.badge{max-width:100%;text-align:left}.court-fund-form{grid-template-columns:1fr}.court-payment-record{padding:16px}.court-payment-heading{flex-wrap:wrap}.court-payment-breakdown{grid-template-columns:1fr 1fr}.court-payment-heading>strong{font-size:19px}.court-advance-preview strong{font-size:20px}}@media(max-width:390px){.court-payment-breakdown{grid-template-columns:1fr}.court-payment-breakdown>div{display:flex;gap:8px;justify-content:space-between}.court-payment-breakdown dd{margin:0}}

@media(min-width:761px){.sidebar-refined{width:252px;padding:20px 14px 0}.sidebar-refined~.main-shell{margin-left:252px;width:calc(100% - 252px)}.sidebar-refined .brand{padding:7px 12px 21px;font-size:25px}.sidebar-refined .club-switch{margin:0 0 13px;padding:12px 10px;gap:9px;min-height:86px;flex-shrink:0;border-radius:14px;background:linear-gradient(135deg,#254a3b,#183b30);box-shadow:0 5px 16px #0000000c}.sidebar-refined .club-switch>svg{flex-shrink:0}.sidebar-refined .club-switch strong{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;font-size:12px}.sidebar-refined .club-switch small{font-size:11px;line-height:1.4}.club-switch-kicker{display:block;font-size:8px;letter-spacing:1.1px;color:#9fbaa7;margin-bottom:5px}.sidebar-refined .club-icon{width:31px;min-width:31px;height:35px}.sidebar-refined nav{flex:1;min-height:0;overflow-y:auto;padding-right:2px;scrollbar-width:thin;scrollbar-color:#50735e transparent}.sidebar-refined .sidebar-caption{padding:10px 12px 7px;font-size:9px;letter-spacing:1.1px;color:#8dac99}.sidebar-refined .nav-item{min-height:43px;padding:7px 10px;margin-bottom:3px;gap:10px;border-radius:11px;font-size:12px;position:relative;isolation:isolate;overflow:hidden;transition:background .18s,color .18s,box-shadow .18s}.sidebar-refined .nav-label{min-width:0;line-height:1.4;flex:1}.sidebar-refined .nav-icon{display:grid;place-items:center;width:26px;height:27px;flex:0 0 26px;transform-style:preserve-3d;transition:transform .25s ease,filter .25s}.sidebar-refined .nav-item.active{background:linear-gradient(115deg,#d9f89e,#bbe577);box-shadow:0 3px 12px #00000016,inset 0 1px 0 #edffc7}.sidebar-refined .nav-item.active:before{content:'';position:absolute;inset:6px auto 6px 0;width:3px;background:#f3ffdd;border-radius:4px}.sidebar-refined .nav-item:hover .nav-icon{transform:perspective(250px) rotateY(-18deg) rotateX(10deg) translateZ(5px);filter:drop-shadow(2px 3px 1px #00000026)}.sidebar-refined .nav-item:focus-visible{outline:2px solid #d8f4a5;outline-offset:-2px}.sidebar-refined .sidebar-bottom{padding:0;margin-top:8px;flex-shrink:0}.sidebar-refined .profile{padding:13px 6px;gap:9px}.sidebar-refined .profile strong{font-size:12px}.sidebar-refined .profile small{font-size:10px}.sidebar-refined .profile .avatar{width:31px;height:31px}.sidebar-refined .profile>span:nth-child(2){min-width:0}.sidebar-refined .profile strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
.session-workflow-tabs{display:flex;gap:5px;padding:5px;margin:0 0 20px;width:fit-content;max-width:100%;border:1px solid #dce5d7;border-radius:12px;background:#edf2e8}.session-workflow-tabs button{min-height:42px;border:0;border-radius:8px;padding:9px 16px;background:transparent;color:#63715c;font:inherit;font-size:13px}.session-workflow-tabs button.active{background:white;color:#183d2d;box-shadow:0 2px 8px #28432d0e;font-weight:600}
@media(max-width:760px){.sidebar-refined .club-switch{display:none}.sidebar-refined .nav-section-caption{display:none}.sidebar-refined nav>div{display:none!important}.sidebar-refined nav>div:has([data-page=overview]),.sidebar-refined nav>div:has([data-page=sessions]),.sidebar-refined nav>div:has([data-page=finance]){display:block!important}.app-shell[data-role=admin] .sidebar-refined nav>div:has([data-page=play]),.app-shell[data-role=admin] .sidebar-refined nav>div:has([data-page=members]){display:block!important}.app-shell[data-role=treasurer] .sidebar-refined nav>div:has([data-page=sessions]){display:block!important}.sidebar-refined .nav-icon{display:flex;flex-shrink:0}.sidebar-refined .nav-label{overflow:hidden;text-overflow:ellipsis}.sidebar-refined .finance-nav-count{font-size:9px;min-width:16px;padding:1px 4px}.sidebar-refined .nav-item{font-size:10px;gap:5px}.session-workflow-tabs{width:100%}.session-workflow-tabs button{flex:1;padding-inline:10px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.sidebar-refined .nav-icon,.sidebar-refined .nav-item{transition:none}.sidebar-refined .nav-item:hover .nav-icon{transform:none;filter:none}}
.sidebar-account{display:flex;align-items:center;gap:10px;width:100%;padding:16px 10px;margin-top:12px;border:0;border-top:1px solid #436151;background:transparent;color:#f0f7eb;cursor:pointer;text-align:left;flex-shrink:0}.sidebar-account>span:not(.avatar){flex:1;min-width:0}.sidebar-account>.avatar{flex:0 0 32px;width:32px;height:32px}.sidebar-account strong{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-account small{display:block;font-size:11px;color:#b7cbbb;margin-top:5px}.sidebar-account:focus-visible{outline:2px solid #d6f59d;outline-offset:-3px}.mobile-menu-account small{display:block;font-size:12px;margin-top:4px}.overview-period-heading p{font-size:14px;color:#65765d;line-height:1.7}.overview-period-heading{margin:25px 0 16px}.overview-period-heading h2{font-size:20px;margin-bottom:8px}.member-next-vote{display:flex;gap:18px;flex-wrap:wrap;justify-content:space-between;align-items:center}.member-next-vote h3{font-size:18px;margin:0 0 8px}.member-next-vote p{font-size:14px;color:#617057;line-height:1.6}.member-next-vote>small{flex-basis:100%;font-size:12px;color:#687a5b}.member-overview-recent>.text-button{min-height:44px;margin-top:12px}.member-navigation button{font:inherit;cursor:pointer;min-height:44px}.member-nav-brand{display:flex;align-items:center;gap:10px;font-size:24px;padding:8px 10px 25px}.member-nav-group{padding:15px 12px;background:#244939;border:1px solid #3e604b;border-radius:12px;margin-bottom:16px;overflow-wrap:anywhere}.member-nav-group small{display:block;letter-spacing:1px;font-size:9px;color:#bdd2bc;margin-bottom:8px}.member-nav-group strong{font-size:13px;line-height:1.6;display:block}.member-nav-primary,.member-nav-secondary{display:grid;gap:5px}.member-navigation button{display:flex;align-items:center;justify-content:space-between;border:0;border-radius:10px;background:transparent;padding:12px;color:inherit;text-align:left;font-size:13px;line-height:1.5}.member-navigation button.active{background:#d0f295;color:#183e2c;font-weight:650}.member-navigation button:hover{box-shadow:inset 0 0 0 1px #78986a}.member-navigation button:focus-visible{outline:3px solid #bde383;outline-offset:-2px}.member-nav-secondary{margin-top:14px;padding-top:14px;border-top:1px solid #49624c}.member-navigation .member-nav-account{margin-top:10px;border-top:1px solid #49624c;border-radius:0}.member-navigation .member-nav-toggle{display:none}
@media(min-width:761px){.member-navigation{position:fixed;inset:0 auto 0 0;width:252px;overflow-y:auto;background:#15392c;color:#e7f0df;padding:20px 14px;z-index:20}.member-workspace{margin-left:252px!important;margin-right:0!important;width:calc(100% - 252px);max-width:none!important;padding:28px 40px!important}.member-workspace>.portal-header>.brand{display:none}.member-workspace>.portal-header{margin-bottom:20px}}
@media(max-width:760px){.sidebar-account{display:none}.member-navigation{margin:20px 0;background:#f0f5e9;border:1px solid #dce5d2;border-radius:12px;padding:8px;color:#294e35}.member-nav-brand,.member-nav-group{display:none}.member-nav-primary{grid-template-columns:repeat(2,minmax(0,1fr))}.member-navigation .member-nav-toggle{display:flex;width:100%;justify-content:center;border:1px solid #d4dfc9;margin-top:8px}.member-nav-secondary{display:none}.member-navigation.expanded .member-nav-secondary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.member-next-vote h3{font-size:17px}.member-next-vote{padding:18px}.member-workspace{width:100%}.member-workspace .team-ledger-row .badge{white-space:normal;text-align:right;max-width:45%}}
@media(prefers-reduced-motion:reduce){}

.portal-header .portal-header-actions .button{color:var(--forest);background:#f6faef;border-color:#dce8d3}

.auth-page{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);align-items:center;gap:clamp(30px,6vw,100px);padding:clamp(24px,6vw,90px);background:radial-gradient(ellipse at 10% 80%,#254c3a 0,transparent 65%),#102e26;color:#edf5e9}.auth-intro{max-width:620px}.auth-brand{display:flex;gap:14px;align-items:center;font-size:30px;font-weight:700;margin-bottom:70px}.auth-intro .eyebrow{color:#b6ceab}.auth-intro h1{font-size:clamp(38px,4.7vw,68px);letter-spacing:-2px;line-height:1.16;margin:20px 0}.auth-intro em{font-style:normal;color:#d0f68a}.auth-intro p{font-size:17px;line-height:1.9;color:#bed0c2;max-width:470px}.auth-court{margin-top:40px;border:1px solid #63836a;border-radius:50%;width:145px;height:145px;display:grid;place-items:center;transform:rotate(-20deg);background:#d0f68a0a}.auth-card{background:#fbfcf8;color:#213c2d;border-radius:24px;padding:clamp(24px,3vw,42px);width:100%;max-width:500px;box-shadow:0 24px 70px #0003}.auth-card h2{font-size:27px;line-height:1.35}.auth-card>p{color:#637461;font-size:14px;line-height:1.8;margin:12px 0 24px}.auth-card .tabs{margin-bottom:24px}.auth-card .form{padding:0}.auth-card .form>.button{width:100%;min-height:48px;margin-top:8px}.auth-card .field input{width:100%;min-height:48px}.auth-card .google-login{margin-top:24px}.auth-card .auth-note{font-size:12px;margin-bottom:0}.auth-card .tabs button{min-height:44px}.auth-card .error-banner{margin-bottom:16px}@media(max-width:760px){.auth-page{grid-template-columns:minmax(0,1fr);gap:26px;padding:28px 18px}.auth-brand{font-size:25px;margin-bottom:30px}.auth-intro h1{font-size:38px;letter-spacing:-1.3px}.auth-intro p{font-size:14px}.auth-court{display:none}.auth-card{max-width:none;border-radius:18px}.auth-card h2{font-size:24px}}
.invitee-picker{margin:0 0 24px;padding:18px;border:1px solid #dbe5d4;border-radius:14px;background:#f5f8f0;min-width:0}.invitee-picker legend{font-size:16px;font-weight:650;padding:0 6px}.invitee-picker>p,.session-invitations p{font-size:13px;line-height:1.7;color:#65765d}.invitee-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:12px 0}.invitee-toolbar strong{font-size:13px}.invitee-toolbar>div{display:flex;gap:12px;flex-wrap:wrap}.invitee-toolbar button{min-height:44px}.invitee-search{width:100%;min-height:44px;border:1px solid #d4dfca;border-radius:9px;padding:10px 12px;background:#fff}.invitee-list{display:grid;gap:8px;max-height:288px;overflow-y:auto;margin-top:12px;overscroll-behavior:contain;scrollbar-width:thin}.invitee-option{display:flex;gap:12px;align-items:center;min-height:60px;padding:10px 12px;border:1px solid #dce5d4;border-radius:10px;background:#fff;cursor:pointer}.invitee-option.selected{border-color:#9ebc7c;background:#edf5e5}.invitee-option>input{width:18px;height:18px;flex:0 0 18px;margin:0}.invitee-option>.avatar{width:30px;height:30px;flex:0 0 30px}.invitee-option>span:last-child{min-width:0;flex:1}.invitee-option strong,.invitee-option small{display:block;overflow-wrap:anywhere}.invitee-option strong{font-size:14px}.invitee-option small{font-size:11px;color:#6a795e;margin-top:3px}.invitee-option:focus-within{outline:2px solid #789d53;outline-offset:1px}.invitee-picker:disabled .invitee-option{cursor:default;opacity:.7}.session-invitations{border:1px solid #dce5d5;border-radius:12px;padding:18px;margin:0 0 22px}.session-invitations h3{font-size:16px;margin-bottom:6px}.session-invitations>.row-between{gap:12px;flex-wrap:wrap}.session-invitations .invitee-picker{margin-top:18px}.session-invitations>.button{margin-top:12px}.invitation-roster{margin-top:14px}.invitation-roster>summary{cursor:pointer;min-height:44px;font-size:13px;padding:10px 0;color:#32603e}.session-group-picker{padding:20px 24px 0}.session-group-picker select{width:100%}.session-create-form>.error-banner{margin:14px 24px}.vote-not-invited{font-size:12px;color:#7a8573}.invited-session-label{color:#47732d!important;font-size:12px!important}.session-invitations .team-ledger-row strong{font-size:13px;overflow-wrap:anywhere}@media(max-width:760px){.invitee-picker{padding:12px}.invitee-option{gap:9px;padding:10px}.session-group-picker{padding:18px 18px 0}.session-invitations{padding:14px}.session-invitations>.row-between>.button{width:100%}}
.vote-view-toolbar{display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap;padding:0 22px 20px}.vote-view-toolbar .tabs{max-width:100%;flex-wrap:wrap}.vote-view-toolbar button{min-height:44px;font-size:13px}.vote-card-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}.vote-card-actions button{min-height:40px;font-size:12px}.vote-table th{min-width:240px}.vote-summary{flex-wrap:wrap}.vote-session-list{padding:0 22px;display:grid;gap:14px}.vote-session-item{border:1px solid #dfe7d8;border-radius:12px;padding:18px;min-width:0}.vote-list-heading,.vote-list-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.vote-list-heading>div{min-width:0;flex:1}.vote-list-heading .text-button{font-size:16px;text-align:left;overflow-wrap:anywhere;line-height:1.6}.vote-list-heading p{font-size:13px;color:#6c7b62;margin-top:7px;overflow-wrap:anywhere}.vote-list-stats{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0;font-size:12px}.vote-list-stats span{background:#f0f5e9;border-radius:6px;padding:6px 9px}.vote-list-footer .vote-card-actions{margin:0}.session-management-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:16px 0}.session-management-actions p{flex-basis:100%;font-size:13px;color:#6d785f}.danger-text{color:#a34235!important}@media(max-width:760px){.vote-view-toolbar{padding:0 14px 18px;gap:10px}.vote-view-toolbar>.tabs{width:100%}.vote-view-toolbar>.tabs button{flex:1}.vote-session-list{padding:0 14px}.vote-session-item{padding:14px}.vote-list-heading{align-items:flex-start}.vote-list-heading>.badge{max-width:40%;white-space:normal;text-align:center}.vote-list-footer>.button{width:100%}.vote-list-footer .vote-card-actions{width:100%;justify-content:space-between}}

/* One workspace and one navigation system for owners and members. */
.member-workspace-content{min-width:0;width:100%}
.member-overview-banner{display:block;overflow:hidden;margin-bottom:24px}
.member-overview-banner .shuttle-hero{min-height:340px}
.member-workspace-content .member-top-up-bar{margin:0 0 20px}
.member-workspace-content .member-personal{margin:0 0 24px}
.member-finance-tabs{flex-wrap:wrap}
.member-schedule-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}
.member-schedule-toolbar .tabs{flex-shrink:0}
.member-schedule-info{display:flex;align-items:flex-start;gap:14px;min-width:0}
.member-schedule-info>div{min-width:0}
.member-schedule-info h2{overflow-wrap:anywhere;margin:0 0 10px}
.member-schedule-response{display:grid;gap:12px;margin-top:18px}
.member-schedule-list{display:grid;gap:14px}
.member-schedule-list .portal-session{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 24px}
.member-schedule-list .portal-responses{grid-column:1/-1}
.member-schedule-list .member-schedule-response{margin-top:0}
@media(max-width:640px){.member-schedule-toolbar{align-items:flex-start;flex-direction:column;gap:8px}.member-schedule-list .portal-session{grid-template-columns:minmax(0,1fr)}.member-finance-tabs>button{flex:1 1 44%;white-space:normal}.member-workspace-content .member-top-up-bar{flex-wrap:wrap;gap:12px}.member-schedule-response .vote-buttons{flex-wrap:wrap}}
.invitee-disclosure{border:1px solid var(--border,#dbe4d5);border-radius:14px;padding:14px 16px;background:#f6f8f2}
.invitee-disclosure>summary{cursor:pointer;min-height:44px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;list-style:revert}
.invitee-disclosure>summary span{font-size:12px;color:#61765e}
.invitee-disclosure[open]>summary{margin-bottom:14px}
.invitee-disclosure .invitee-picker{margin:0}
.friend-invite-search{display:flex;gap:8px;margin:12px 0}
.friend-invite-search input{min-width:0;flex:1}
.friend-invite-search button{flex-shrink:0}
.session-template-settings{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px;margin-bottom:22px}
.session-template-settings h2{margin:0 0 8px}.session-template-settings p{margin:0 0 6px}.session-template-settings small{color:#6c806d}
.session-template-note{padding:12px 14px;background:#eff7dc;border-radius:12px;color:#3c6034;font-size:13px;margin:0 0 18px}
@media(max-width:640px){.session-template-settings{align-items:flex-start;flex-direction:column}.session-template-settings>.button{width:100%}}

.group-invitation-notice{display:flex;align-items:center;gap:16px;padding:18px 20px;margin-bottom:24px;background:#edf5dd;border:1px solid #cdddba;border-radius:15px}
.group-invitation-notice>svg{flex-shrink:0;color:#456c36}.group-invitation-notice>div{flex:1;min-width:0}.group-invitation-notice p{margin:4px 0 0;color:#52684b;font-size:13px;overflow-wrap:anywhere}.group-invitation-notice .button{flex-shrink:0}
.group-inbox{padding:24px;margin-bottom:24px}.group-inbox-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.group-inbox-heading h2{margin:0;font-size:20px}.group-inbox-heading p{font-size:13px;color:#6a7b6d;margin:6px 0 0}.group-inbox-list{display:grid;gap:12px;margin-top:20px}.group-inbox-card{display:flex;align-items:center;gap:20px;border:1px solid var(--border);border-radius:12px;padding:18px}.group-inbox-card>div:first-child{flex:1;min-width:0}.group-inbox-card h3{margin:8px 0;font-size:18px;overflow-wrap:anywhere}.group-inbox-card p{margin:5px 0;font-size:14px;overflow-wrap:anywhere}.group-inbox-card small{color:#718078}.group-inbox-actions{display:flex;gap:8px;flex-shrink:0}.group-inbox-sessions{color:#4e6d40}
@media(max-width:640px){.group-invitation-notice{flex-wrap:wrap;gap:12px;padding:16px}.group-invitation-notice>.button{width:100%}.group-inbox{padding:18px}.group-inbox-heading,.group-inbox-card{align-items:stretch;flex-direction:column}.group-inbox-card{padding:14px;gap:14px}.group-inbox-actions{flex-wrap:wrap}.group-inbox-actions>.button{flex:1;white-space:normal}}

/* Schedule search: date and status are explicit, with no hidden month filter. */
.session-search{margin:0 0 20px;min-width:0}
.session-search-controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.session-search-input{display:flex;align-items:center;gap:10px;flex:1 1 260px;min-width:0;border:1px solid var(--border);border-radius:12px;background:#fff;padding:0 14px;color:#6b7f73;min-height:48px}
.session-search-input:focus-within{border-color:#719866;box-shadow:0 0 0 3px #dbeaCF}
.session-search-input input{width:100%;min-width:0;border:0;background:transparent;outline:none;box-shadow:none;padding:12px 0;font-size:14px;color:var(--forest-deep)}
.session-search-input input::-webkit-search-cancel-button{display:none}
.session-search-input>svg{flex-shrink:0}.session-search-input button{display:grid;place-items:center;border:0;background:transparent;color:inherit;min-width:32px;min-height:40px}
.session-search-period{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.session-search-period .tabs{margin:0}
.session-search-result{font-size:12px;color:#66796d;margin:10px 2px 0;overflow-wrap:anywhere}
.member-schedule-toolbar>.tabs{min-width:0;max-width:100%;flex-wrap:wrap}
.portal-session-grid{align-items:start}.member-schedule-info p{display:flex;align-items:flex-start;gap:7px;margin:6px 0;font-size:13px;color:#627569;line-height:1.5}.member-schedule-info p svg{flex-shrink:0;margin-top:2px}.member-schedule-info p span{overflow-wrap:anywhere}
.member-schedule-response>.badge{justify-self:start}.member-schedule-response>.form-hint{margin:0;font-size:13px;line-height:1.6}
/* Compact, readable vote roster. Native details keeps disclosure keyboard accessible. */
.session-responses{margin-top:20px;border-top:1px solid #e8ede6;min-width:0;grid-column:1/-1}
.session-responses summary{display:flex;align-items:center;gap:10px;list-style:none;cursor:pointer;padding:16px 0 0;min-height:48px;color:#334e41}
.session-responses summary::-webkit-details-marker{display:none}.session-responses summary:focus-visible{outline:2px solid #719866;outline-offset:5px;border-radius:8px}
.response-summary-icon{width:34px;height:34px;border-radius:10px;background:#f0f5ed;display:grid;place-items:center;flex-shrink:0;color:#57744a}
.session-responses summary>span:nth-child(2){flex:1;min-width:0}.session-responses summary strong{font-size:13px;font-weight:650;display:block}.session-responses summary small{display:block;font-size:11px;color:#6e7d73;margin-top:4px;line-height:1.5}
.response-chevron{flex-shrink:0;transition:transform .2s ease}.session-responses[open] .response-chevron{transform:rotate(180deg)}
.response-body{padding-top:16px}.response-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.response-filters button{display:flex;align-items:center;gap:6px;padding:7px 9px;min-height:36px;border:1px solid #e2e8de;border-radius:8px;background:#fff;color:#657461;font-size:11px;white-space:nowrap}
.response-filters button span{font-size:10px;font-variant-numeric:tabular-nums;background:#f0f3ec;min-width:18px;padding:2px 4px;border-radius:5px;text-align:center}
.response-filters button.active{background:#eaf3e0;color:#365b2e;border-color:#bed2a8}.response-filters button.active span{background:#d5e7c2}.response-filters button:focus-visible{outline:2px solid #719866;outline-offset:2px}
.response-roster{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:minmax(0,1fr);max-height:328px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#cedac6 transparent}
.response-person{display:flex;align-items:center;gap:10px;min-width:0;padding:10px 6px;border-bottom:1px solid #edf0ea}.response-person:last-child{border-bottom:0}.response-person .avatar{flex-shrink:0;width:30px;height:30px;font-size:10px}
.response-person-name{flex:1;min-width:0;color:#334a3d;font-size:13px;line-height:1.5;overflow-wrap:anywhere}.response-person-name>small{font-size:10px;color:#75836c;margin-left:7px;font-weight:400}
.response-status{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;border-radius:6px;padding:5px 7px;background:#f3f5f0;color:#74806e;font-size:11px;white-space:nowrap}
.response-yes .response-status{background:#eaf4df;color:#426b30}.response-maybe .response-status{background:#fff3db;color:#936a24}.response-no .response-status{background:#f6ebe7;color:#946250}.response-empty{font-size:13px;color:#71806a;margin:16px 0}
.member-schedule-list .session-responses{margin-top:0}.member-schedule-list .response-roster{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}
@media(max-width:760px){.session-search-controls{align-items:stretch}.session-search-input{flex-basis:100%}.session-search-period{width:100%}.session-search-period .tabs{flex:1}.session-search-period .tabs button{flex:1}.member-schedule-list .response-roster{grid-template-columns:minmax(0,1fr)}}
@media(max-width:400px){.response-status{font-size:10px;padding:5px}.response-person{gap:7px}.response-filters button{min-height:40px}.member-schedule-toolbar .tabs button{font-size:12px;padding-inline:10px}}
@media(prefers-reduced-motion:reduce){.response-chevron{transition:none}}
.sidebar-refined .club-switch[data-state=open]{border-color:#caeaa0;box-shadow:0 0 0 2px #caeaa033}
.sidebar-refined .club-switch:focus-visible{outline:2px solid #d8f4a5;outline-offset:3px}
.sidebar-refined .club-switch[data-state=open]>svg:last-child{transform:rotate(180deg)}

/* Keep user-entered names and notes within their cards and flex tracks. */
.group-context-copy > div,
.group-context-actions label,
.manager-debt-member-heading .person-cell,
.manager-debt-member-heading .person-cell > div,
.venue-heading > div,
.booking-request > div:first-child,
.play-hero > div:first-child,
.play-section-heading > div {
  min-width: 0;
  max-width: 100%;
}
.manager-debt-member-heading { flex-wrap: wrap; align-items: flex-start; }
.manager-debt-member-heading > .person-cell { flex: 1 1 160px; }
.manager-debt-member-heading > div:last-child { margin-left: auto; }
.manager-debt-member-heading .person-cell strong,
.person-copy strong,
.session-card h2,
.session-card > p,
.venue-heading h2,
.address,
.booking-request p,
.pass-card h3,
.pass-place,
.pass-person,
.portal-session h2,
.portal-session > p,
.portal-responses p,
.community-panel h2,
.invite-row > strong,
.play-hero p,
.play-detail,
.play-application-copy > span,
.play-section-heading p,
.detail-meta > span {
  overflow-wrap: anywhere;
}
.profile > span:nth-child(2) { min-width: 0; }
.profile strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mobile-menu-account { white-space: normal; overflow-wrap: anywhere; min-width: 0; }
.standalone.tabs { flex-wrap: wrap; }
.cost-box > .row-between { flex-wrap: wrap; align-items: flex-start; }
.cost-box > .row-between .text-button { text-align: left; white-space: normal; }
.cost-stage-note {
  padding: 13px 15px;
  margin: 0 0 18px;
  border: 1px solid #d8e4cc;
  border-radius: 10px;
  background: #f3f7ec;
  color: #536846;
  font-size: 13px;
  line-height: 1.7;
  overflow-wrap: anywhere;
}
.cost-stage-note strong { color: var(--forest); font-size: 13px; }
.cost-stage-note p { margin-top: 5px; }
.cost-box .cost-stage-note { margin: 16px 0; }
@media (max-width: 760px) {
  .detail-section-title { flex-wrap: wrap; align-items: flex-start; }
  .detail-section-title > .muted { flex-basis: 100%; }
  .group-context-actions label { max-width: 100%; }
  .cost-stage-note { padding: 12px; font-size: 12px; }
}

/* Golden has a reserved area after the workspace, never above page controls. */
.cat-stage {
  position: relative;
  isolation: isolate;
  min-height: 270px;
  margin-left: 252px;
  border-top: 1px solid var(--border);
  background: linear-gradient(180deg, var(--canvas), #edf3e7);
}
.cat-stage .court-cat, .cat-stage .cat-toggle { position: absolute; z-index: 1; }
.cat-stage .court-cat { bottom: 8px; }
.cat-stage .cat-toggle { bottom: 24px; right: 20px; }
.cat-stage:has(.cat-toggle[aria-pressed=false]) { min-height: 88px; }
.app-footer, .portal-footer { padding-bottom: 24px; }

/* Readable secondary text and controls shared by the existing screens. */
.response-filters button { min-height: 44px; font-size: 13px; padding: 8px 10px; }
.response-filters button span, .response-status,
.session-responses summary small, .response-person-name > small { font-size: 12px; }
.response-person-name, .session-responses summary strong { font-size: 14px; }
.response-status { color: #53644d; }
.response-yes .response-status { color: #365a25; }
.response-maybe .response-status { color: #795416; }
.response-no .response-status { color: #784536; }
.response-filters button.active { background: var(--forest); color: white; border-color: var(--forest); }
.response-filters button.active span { background: #ffffff24; color: white; }
.response-person { padding-block: 12px; }
.session-search-input input { font-size: 16px; }
.session-search-result { font-size: 13px; color: var(--muted); }
.session-search-input button { min-width: 44px; min-height: 44px; }
.club-card-copy > span, .club-card-copy small { font-size: 12px; color: var(--muted); }
.community-profile { align-self: start; }
.community-profile summary { cursor: pointer; min-height: 44px; color: var(--forest); }
.community-profile summary strong { font-size: 16px; }
.community-profile summary > span { display: block; margin-top: 6px; font-size: 13px; color: var(--muted); }
.community-profile details[open] > summary { margin-bottom: 20px; }
.community-profile summary:focus-visible { outline: 3px solid var(--green); outline-offset: 5px; border-radius: 4px; }
.members-panel > .form-hint { padding: 0 24px 16px; margin: 0; color: var(--muted); font-size: 13px; }
.members-table { white-space: normal; }
.members-table th, .members-table td { padding-inline: 12px; }
.members-table .person-cell { min-width: 180px; }
.members-table .person-cell > div { min-width: 0; }
.members-table .person-cell strong { overflow-wrap: anywhere; }
.members-table .badge { white-space: normal; }
.members-table .ledger-link { white-space: nowrap; }
.heading-actions:empty { display: none; }

@media (max-width: 760px) {
  .cat-stage { margin-left: 0; min-height: 250px; }
  .main-content { padding-top: 20px; }
  .page-heading { margin-bottom: 16px; }
  .page-heading h1 { font-size: 26px; line-height: 1.35; }
  .page-heading p { font-size: 14px; line-height: 1.55; }
  .page-eyebrow { display: none; }
  .heading-actions { margin-top: 12px; }
  .sidebar-refined .nav-item { font-size: 12px; gap: 6px; }
  .sidebar-refined .nav-label { white-space: normal; overflow: visible; line-height: 1.4; }
  .tabs { flex-wrap: wrap; }
  .tabs button, .session-workflow-tabs button { font-size: 13px; }
  .badge { font-size: 12px; }
  .field input:not([type=checkbox]):not([type=radio]), .field select, .field textarea,
  .search-input input, .toolbar-right select { font-size: 16px; }
  .group-context { padding: 12px 14px; gap: 10px; border-radius: 14px; margin-bottom: 16px; }
  .group-context-copy { flex-basis: 100%; gap: 10px; }
  .group-context-copy strong { font-size: 16px; }
  .group-context-copy small { margin-top: 2px; line-height: 1.4; }
  .group-context-icon { flex-basis: 34px; height: 34px; border-radius: 10px; }
  .group-context .group-kicker { font-size: 10px; }
  .group-context-actions { gap: 8px; align-items: end; }
  .group-context-actions label { flex: 1 1 160px; min-width: 0; font-size: 12px; }
  .group-context-actions > .group-refresh { flex: 0 0 44px; width: 44px; padding: 10px; }
  .group-refresh > span { display: none; }
  .group-context-actions > a.button { flex: 1 1 auto; }
  .group-context select { font-size: 14px; }
  .session-workflow-tabs { margin-bottom: 16px; }
  .session-search { margin-bottom: 14px; }
  .member-schedule-toolbar { gap: 8px; margin-bottom: 14px; }
  .member-schedule-toolbar > .tabs { margin: 0; }
  .member-workspace-content .member-top-up-bar { margin-bottom: 14px; padding: 12px 14px; }
  .response-filters { gap: 8px; }
  .response-filters button { white-space: normal; text-align: left; }
  .response-status { max-width: 45%; white-space: normal; }
  .response-person { flex-wrap: wrap; }
  .response-person-name { flex: 1 1 90px; }
  .response-person-name > small { display: block; margin-left: 0; }
  .chibi-hero, .member-overview-banner .chibi-hero { min-height: 0; }
  .chibi-hero .shuttle-hero-copy { padding: 24px 22px 220px; }
  .chibi-hero h2 { font-size: 28px; }
  .chibi-stage { inset: auto -8px 42px; height: 180px; }
  .play-hero { padding: 20px; }
  .play-hero h2 { font-size: 23px; }
  .play-hero .eyebrow { display: none; }
  .group-inbox { padding: 16px; margin-bottom: 16px; }
  .group-inbox-heading h2 { font-size: 18px; }
  .group-inbox-heading { gap: 10px; }
  .session-template-settings { padding: 16px; gap: 12px; margin-bottom: 16px; }
  .session-template-settings p { font-size: 14px; }
  .community-panel, .community-empty { padding: 18px; }
  .community .row-between { gap: 12px; align-items: flex-start; }
  .community .row-between > .button { flex-shrink: 0; }
  .community .form-hint { font-size: 13px; }
  .members-panel > .form-hint { padding: 0 16px 16px; }
  .members-panel .toolbar-right, .court-toolbar .toolbar-right {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    gap: 10px;
  }
  .members-panel .toolbar-right > select { grid-column: 1 / -1; width: 100%; }
  .members-panel .toolbar-right > svg { display: none; }
  .court-toolbar .toolbar-right > .button.primary { grid-column: 1 / -1; }
  .court-toolbar .toolbar-right > select { width: 100%; font-size: 14px; }
  .members-panel .table-toolbar { padding: 16px; }
  .table-wrap:has(> .responsive-data-table) { overflow: visible; }
  .responsive-data-table { display: block; white-space: normal; }
  .responsive-data-table thead {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip-path: inset(50%); white-space: nowrap;
  }
  .responsive-data-table tbody { display: grid; gap: 14px; padding: 0 16px 16px; }
  .responsive-data-table tr {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px;
    padding: 16px; border: 1px solid var(--border); border-radius: 14px; background: white;
  }
  .responsive-data-table td {
    display: block; padding: 0; border: 0; min-width: 0;
    font-size: 14px; white-space: normal; overflow-wrap: anywhere;
  }
  .responsive-data-table td[data-label]::before {
    content: attr(data-label); display: block; font-size: 12px; line-height: 1.5;
    color: var(--muted); margin-bottom: 5px;
  }
  .responsive-data-table .member-identity, .responsive-data-table .booking-identity {
    grid-column: 1 / -1; padding-bottom: 12px; border-bottom: 1px solid var(--border);
  }
  .responsive-data-table .person-cell { min-width: 0; align-items: flex-start; gap: 10px; }
  .responsive-data-table .person-cell strong { font-size: 15px; }
  .responsive-data-table .person-cell small { font-size: 12px; white-space: normal; line-height: 1.5; }
  .responsive-data-table .participation { flex-wrap: wrap; gap: 6px; }
  .responsive-data-table .ledger-link { margin: 4px 0 0; min-height: 44px; }
  .responsive-data-table .member-actions { grid-column: 1 / -1; border-top: 1px solid var(--border); padding-top: 10px; }
  .responsive-data-table .member-actions::before { display: none; }
  .bookings-table td[data-label="Ngày & giờ"], .bookings-table td[data-label="Thao tác"] { grid-column: 1 / -1; }
  .bookings-table .booking-identity strong { font-size: 16px; }
  .bookings-table td .text-button { white-space: normal; }
}

/* Collection state is separate from registration and session closure. */
.collection-badge{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:7px 10px;border:1px solid transparent;border-radius:8px;font-size:12px;font-weight:650;line-height:1.45;text-align:left;vertical-align:middle;white-space:normal}
.collection-badge svg{flex-shrink:0}
.collection-due{background:#fff2df;border-color:#ecc58e;color:#884710}
.collection-paid{background:#e4f3e8;border-color:#a6d0b2;color:#226038}
.collection-unsettled{background:#f0f2ee;border-color:#dde3d8;color:#586653}
.session-card>.collection-badge{margin:0 0 6px}
.vote-workspace .vote-matrix{max-height:68vh;min-height:240px;overflow:auto;overscroll-behavior:contain;border-block:1px solid #dfe7d8;scroll-padding-left:190px}
.vote-matrix:focus-visible{outline:2px solid #286347;outline-offset:2px}
.vote-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;table-layout:fixed}
.vote-table-caption{text-align:left;font-size:12px;padding:10px 20px;color:#5f7059;background:#f6f8f3;caption-side:bottom}
.vote-table th,.vote-table td{box-sizing:border-box;width:250px;min-width:250px;padding:12px 16px}
.vote-table thead th{position:sticky;top:0;z-index:2;background:#f4f7ef;box-shadow:0 1px 0 #dfe7d8}
.vote-table th:first-child,.vote-table td:first-child{position:sticky;left:0;width:190px;min-width:190px;max-width:190px;z-index:1;background:#fff;box-shadow:1px 0 0 #dfe7d8}
.vote-table thead th:first-child{z-index:3;background:#edf2e5}
.vote-table .person-cell strong{white-space:normal;overflow-wrap:anywhere;font-size:13px}
.vote-table tr:hover td{background:#f7faf4}
.vote-table th .text-button{font-size:14px;min-height:36px;text-align:left}
.vote-table .vote-column-title{font-size:12px;line-height:1.5;margin:2px 0 8px;white-space:normal;overflow-wrap:anywhere}
.vote-table .collection-badge{margin:0 0 8px}
.vote-table .vote-summary{font-size:11px;gap:5px 8px;margin:8px 0}
.vote-table .vote-select{width:100%;max-width:200px;font-size:13px}
.vote-management{font-size:12px;align-self:flex-start}
.vote-management summary{cursor:pointer;padding:12px 0;color:#52684a;min-height:40px;list-style-position:inside;font-weight:500}
.vote-management .vote-card-actions{margin:0;gap:6px 12px}
.vote-list-heading{margin-bottom:12px}
.vote-roster{border-top:1px solid #e2e8dd;border-bottom:1px solid #e2e8dd;margin:12px 0}
.vote-roster>summary{padding:14px 0;font-size:13px;font-weight:600;cursor:pointer;color:#315539;list-style-position:inside}
.vote-roster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;padding-bottom:12px}
.vote-roster-person{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #edf0e8;min-width:0}
.vote-roster-person .person-cell{min-width:0;flex:1}
.vote-roster-person strong{font-size:13px;overflow-wrap:anywhere}
.vote-roster-person select{width:132px;flex-shrink:0;font-size:13px}
.recurrence-fields{border:1px solid #d8e2d0;border-radius:12px;padding:16px;min-width:0;margin:0}
.recurrence-fields legend{font-size:14px;font-weight:600;padding:0 6px}
.recurrence-modes{display:flex;gap:6px;flex-wrap:wrap}
.recurrence-modes button,.recurrence-weekdays button{border:1px solid #d6dfd0;background:#fff;border-radius:8px;min-height:44px;padding:9px 12px;color:#48603e;font:inherit;font-size:13px;cursor:pointer}
.recurrence-modes button[aria-pressed=true],.recurrence-weekdays button[aria-pressed=true]{background:#254f3b;color:#fff;border-color:#254f3b}
.recurrence-weekdays{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}
.recurrence-weekdays button{flex:1;min-width:38px;padding:8px}
.recurrence-fields>.form-hint{margin:12px 0}
.recurrence-preview{margin-top:12px;background:#f3f7ed;border-radius:9px;padding:12px;font-size:13px;line-height:1.6}
.recurrence-preview p{margin:6px 0;font-variant-numeric:tabular-nums}
.recurrence-preview small{display:block;color:#57694d;font-size:12px}
@media(max-width:760px){.vote-table th:first-child,.vote-table td:first-child{width:132px;min-width:132px;max-width:132px;padding:10px}.vote-table .person-cell{gap:6px}.vote-table .person-cell .avatar{display:none}.vote-workspace .vote-matrix{scroll-padding-left:132px}.vote-roster-grid{grid-template-columns:1fr}.vote-roster-person select{font-size:16px}.vote-list-footer{gap:8px}.vote-management{width:100%}.recurrence-fields{padding:12px}.recurrence-modes button{flex:1;padding:8px 6px;font-size:12px}.recurrence-weekdays{gap:4px}}
.vote-upcoming-hint{margin:0 22px 16px;color:#5b6c54;font-size:12px;line-height:1.6}
@media(max-width:760px){.vote-upcoming-hint{margin-inline:14px}}
.session-collection-details{padding:16px;border:1px solid #ebceaa;border-radius:12px;background:#fffaf2;margin:14px 0}
.session-collection-details.paid{background:#eef8f0;border-color:#b8d9be}
.session-collection-details .row-between{gap:10px;flex-wrap:wrap;align-items:center}
.session-collection-details h3{font-size:16px;margin:0}
.session-collection-details>p{font-size:13px;color:#785021;margin:10px 0}
.session-collection-details>small{display:block;font-size:12px;line-height:1.6;color:#705e48;margin-top:12px}
.session-collection-details ul{list-style:none;padding:0;margin:0;max-height:330px;overflow:auto}
.session-collection-details li{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid #eee0cc}
.session-collection-details .person-cell{flex:1;min-width:0;gap:9px}
.session-collection-details .person-cell strong{font-size:14px;overflow-wrap:anywhere}
.collection-person-due{text-align:right;flex-shrink:0;color:#8a4c18;font-size:14px}
.collection-person-due small{display:block;font-size:11px;font-weight:400;margin-bottom:3px}
.member-collection-disclosure{margin-top:14px;grid-column:1/-1}
.member-collection-disclosure>summary{cursor:pointer;color:#426b3a;padding:12px 0;font-size:13px;list-style-position:inside}
@media(max-width:600px){.session-collection-details{padding:12px}.session-collection-details li{flex-wrap:wrap;gap:8px}.session-collection-details li>.button{margin-left:auto}.session-collection-details .person-cell strong{font-size:13px}}
.vote-table th .vote-column-title{min-height:0;padding:0;display:block;font-size:12px;font-weight:400}

/* Separate scope, filters and results instead of a continuous text strip. */
.session-search-result{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:14px 0 0;line-height:1.5}
.session-search-result>*{padding:5px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;font-size:13px}
.session-search-result>strong{background:#eaf2e4;color:var(--forest-deep)}
.vote-workspace>.section-title{padding-bottom:20px;margin-bottom:0}
.vote-workspace>.session-search{margin:0 22px 20px;padding:16px;border:1px solid var(--border);border-radius:14px;background:#f7f9f4}
.vote-workspace>.vote-view-toolbar{padding:0 22px;margin-bottom:12px}
.vote-workspace>.vote-upcoming-hint{padding:12px 14px;border-left:3px solid #b9cba8;background:#f6f8f2;border-radius:0 8px 8px;margin-bottom:24px}
.vote-workspace .vote-session-list{display:grid;gap:18px;padding:0 22px 20px}
.vote-workspace .vote-session-item{padding:20px;border:1px solid var(--border);border-radius:14px;background:#fff;margin:0;min-width:0}
.vote-workspace .vote-list-stats{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.vote-workspace .vote-list-stats span{padding:6px 10px;border-radius:7px;background:#f3f6ee;font-size:13px}
.system-expense-settings{padding:20px 0;margin:20px 0;border-block:1px solid var(--border)}
.system-category-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;margin:12px 0}
.system-category-row .checkbox-label{display:flex;align-items:center;gap:8px}.system-category-row input[type=checkbox]{width:18px;min-height:18px}
@media(max-width:760px){.vote-workspace>.session-search{margin:0 12px 16px;padding:12px}.vote-workspace>.vote-view-toolbar{padding:0 12px}.vote-workspace>.vote-upcoming-hint{margin-inline:12px}.vote-workspace .vote-session-list{padding:0 12px 16px}.vote-workspace .vote-session-item{padding:14px}.system-category-row{grid-template-columns:1fr}}

.avatar{overflow:hidden;flex-shrink:0}.avatar img{width:100%;height:100%;display:block;object-fit:cover}.user-profile-editor{min-width:0}.user-profile-editor fieldset{border:0;padding:0;margin:0;min-width:0;display:grid;gap:18px}.profile-photo-row{display:flex;align-items:center;gap:18px;padding:18px;border:1px solid #dce6d5;border-radius:16px;background:linear-gradient(135deg,#eff5e7,#f9fbf6)}.profile-photo-row>.avatar{width:84px;height:84px;font-size:26px;border:3px solid white;box-shadow:0 5px 18px #193d2918}.profile-photo-row>div{min-width:0}.profile-photo-row p{font-size:12px;color:#667660;margin:5px 0 10px}.profile-photo-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.profile-photo-actions .button{min-height:40px;padding:8px 12px}.profile-file-input{position:absolute;width:1px!important;height:1px;opacity:0;overflow:hidden;pointer-events:none}.user-profile-editor textarea{resize:vertical;min-height:100px;max-width:100%}.profile-discoverable{align-items:flex-start}.profile-discoverable small{display:block;font-size:12px;line-height:1.6;color:#697762;margin-top:5px}.profile-discoverable input{flex:0 0 auto;margin-top:4px}.account-connections{border-top:1px solid #e1e8dc;margin-top:24px;padding-top:18px;display:grid;gap:14px}.friend-profile-details{grid-column:1/-1;padding:5px 0 14px;color:#5e7158;font-size:13px;overflow-wrap:anywhere}.friend-profile-details p{white-space:pre-wrap;margin:4px 0;line-height:1.6}.friend-row{flex-wrap:wrap}.friend-row>div{min-width:0}.friend-row .friend-profile-details{flex-basis:100%}.portal-header-actions{display:flex;gap:8px;flex-wrap:wrap}.vote-lock-button{margin-top:8px;min-height:38px}.session-vote-strip{flex-wrap:wrap}.profile-photo-row strong,.user-profile-editor .field{overflow-wrap:anywhere}
@media(max-width:480px){.profile-photo-row{padding:12px;gap:12px;align-items:flex-start}.profile-photo-row>.avatar{width:64px;height:64px}.user-profile-editor .form-grid{grid-template-columns:1fr}.portal-header{flex-wrap:wrap}.portal-header-actions{width:100%;justify-content:flex-end}}
.user-profile-editor textarea{font:inherit;font-size:14px;line-height:1.6;color:var(--text);width:100%;padding:11px 13px;border:1px solid #d6dfce;border-radius:9px;background:white}.user-profile-editor textarea:focus-visible{outline:3px solid #79b457;outline-offset:3px}.user-profile-editor .field{margin:0}.sidebar-refined nav{padding-bottom:18px}

.player-rank-badge{display:block;margin-top:6px}.player-rank-badge .badge{font-size:11px;white-space:normal;line-height:1.5}.user-profile-editor .recruit-rank-guide{margin:12px 0}.user-profile-editor .recruit-rank-guide dl{max-height:280px;overflow:auto}

/* Amount entry keeps integer VND values; round presets are optional shortcuts. */
.money-input{display:flex;flex-direction:column;gap:7px;min-width:0;width:100%}.money-input-control{position:relative;min-width:0}.money-input .money-input-control input{width:100%;min-height:50px;margin:0;padding:12px 38px 12px 14px;border:1px solid #ccd9c7;border-radius:10px;background:#fff;color:#183d2d;font-size:18px;font-weight:600;line-height:1.4;font-variant-numeric:tabular-nums;appearance:textfield;-moz-appearance:textfield}.money-input input::-webkit-inner-spin-button,.money-input input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.money-input input:focus{border-color:#6b9850;box-shadow:0 0 0 3px #8cae6320}.money-input-unit{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:#607456;font-size:16px;pointer-events:none}.money-input-readout{min-height:20px;font-size:13px;font-weight:600;line-height:1.5;color:#416437;overflow-wrap:anywhere}.money-quick{display:flex;gap:6px;flex-wrap:wrap;align-items:center;min-width:0}.money-quick-label{flex-basis:100%;font-size:11px;color:#63735c;font-weight:400}.money-quick button{border:1px solid #dce5d6;background:#f5f8ef;border-radius:8px;padding:7px 10px;min-height:36px;font:inherit;font-size:12px;font-weight:500;color:#35512d;line-height:1.4;white-space:normal;overflow-wrap:anywhere;max-width:100%;box-shadow:none}.money-quick button:hover{background:#e8f3d5;border-color:#a6be8c}.money-quick button[aria-pressed=true]{background:#e4f2cf;border-color:#8cab69;color:#234520}.money-quick .money-quick-exact{flex-basis:100%;text-align:left;background:#edf4e6}.money-quick button:focus-visible{outline:3px solid #739d4f;outline-offset:2px}.money-input:has(input:disabled){opacity:.65}
.modal.wide:has(.cost-form){max-width:min(940px,calc(100vw - 40px))}.modal:has(.cost-form) .modal-heading h2{font-size:22px}.cost-form{font-size:16px}.cost-form .field>span:first-child{font-size:15px;line-height:1.5}.cost-form .field input,.cost-form .field select{min-height:50px;font-size:16px}.cost-form .money-input input{font-size:20px}.cost-form .cost-input-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.cost-form .cost-input-grid>.field:last-child{grid-column:auto}.cost-form .pricing-fieldset{padding:22px}.cost-form .pricing-fieldset legend{font-size:17px}.cost-form .rate-grid{gap:16px}.cost-form .rate-card{padding:18px}.cost-form .rate-label{font-size:15px;min-height:1.5em}.cost-form .rate-unit{font-size:13px}.cost-form .form-hint,.cost-form .calculation-line{font-size:14px;line-height:1.7}.cost-form .cost-total{padding:20px;border-radius:12px;background:#f0f5e8;gap:15px;flex-wrap:wrap}.cost-form .cost-total strong{font-size:28px;font-variant-numeric:tabular-nums}.cost-form .pricing-preview{padding:20px}.cost-form .pricing-preview>div{gap:16px}.cost-form .pricing-preview>div>span{min-width:0;overflow-wrap:anywhere}.cost-form .pricing-preview b{font-size:17px;white-space:nowrap}.cost-form .form-footer{position:sticky;bottom:0;background:#fff;padding-top:16px;padding-bottom:12px;border-top:1px solid #e1e8db;z-index:1}.cost-form .form-footer .button{min-height:46px;font-size:15px}
@media(max-width:700px){.modal.wide:has(.cost-form){max-width:calc(100vw - 20px)}.modal:has(.cost-form) .modal-heading h2{font-size:19px}.cost-form .cost-input-grid{grid-template-columns:1fr;gap:0}.cost-form .rate-grid{grid-template-columns:1fr}.cost-form .rate-grid-mixed .rate-card{grid-template-columns:1fr}.cost-form .pricing-fieldset{padding:16px}.cost-form .rate-card{padding:16px}.money-quick button{min-height:40px;padding:8px 11px}.cost-form .cost-total strong{font-size:25px}.cost-form .form-footer{flex-wrap:wrap;gap:10px}.cost-form .form-footer .button{flex:1 1 160px}.cost-form .pricing-preview{padding:14px}.cost-form .pricing-preview>div{align-items:flex-start;flex-wrap:wrap}}

.money-input .money-quick-label{font-size:12px}
.money-input .money-quick button,.expense-form .money-input .money-quick button{min-height:44px;min-width:44px}

/* P1-3: creation only; editing actual costs and group templates keep their full controls. */
.modal:has(.session-create-form) .modal-heading{padding:16px 24px;min-height:76px}
.session-create-form .session-group-picker{padding:16px 24px 0}
.session-create-form .session-group-picker .field{margin:0;gap:4px}
.session-create-form .session-group-picker .field>span{font-size:13px;line-height:20px}
.session-create-form .session-group-picker select{min-height:44px;padding:10px 12px;font-size:14px}
.session-create-form .session-template-note{margin:8px 24px 0;font-size:12px;line-height:20px}
.form.session-create-cost-form{padding:16px 24px;display:grid;gap:16px}
.session-create-cost-form .session-primary-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
.session-primary-fields>.field:first-child{grid-column:1/-1}
.session-create-cost-form .session-time-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.session-create-cost-form .session-primary-fields .field{margin:0;gap:4px;min-width:0}
.session-create-cost-form .session-primary-fields .field>span:first-child{font-size:13px;line-height:20px;min-height:20px}
.session-create-cost-form .session-primary-fields .field :is(input,select),.session-create-cost-form .session-primary-fields .picker-trigger{min-height:44px;padding:10px 12px;font-size:16px;line-height:22px}
.session-create-cost-form .session-primary-fields .money-input input{padding-right:36px}
.session-advanced{min-width:0;border-block:1px solid var(--line);margin:0}
.session-advanced>summary{cursor:pointer;min-height:64px;padding:8px 0;list-style-position:inside}
.session-advanced>summary strong{font-size:14px;line-height:24px}
.session-advanced>summary>span{display:block;font-size:12px;line-height:20px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.session-advanced-body{padding:16px 0 0;min-width:0}
.session-create-cost-form .form-footer{margin:0;padding:0;min-height:44px;border:0;gap:12px}
.session-create-cost-form .form-footer .button{min-height:44px;line-height:22px;padding:10px 15px}
@media(prefers-reduced-motion:no-preference){.session-advanced[open]>.session-advanced-body{animation:session-options-in 200ms cubic-bezier(.16,1,.3,1) both}@keyframes session-options-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}}
@media(prefers-reduced-motion:reduce){.session-advanced-body{animation:none;transition:none}}
@media(max-width:760px){.modal:has(.session-create-form) .modal-heading{padding:12px 16px;min-height:68px}.session-create-form .session-group-picker{padding:12px 16px 0}.session-create-form .session-template-note{margin-inline:16px}.form.session-create-cost-form{padding:12px 16px;gap:12px}.session-create-cost-form .session-primary-fields{grid-template-columns:minmax(0,1fr);gap:12px}.session-primary-fields>.field:first-child{grid-column:auto}.session-create-cost-form .form-footer{flex-wrap:nowrap;gap:8px}.session-create-cost-form .form-footer .button{flex:1;font-size:13px;padding:8px;min-width:0}.session-create-cost-form .form-footer .primary{flex:2}}

.session-create-cost-form .session-time-fields .time-picker{padding:0 4px;gap:2px;min-width:0}
.session-create-cost-form .session-time-fields .time-part{min-width:44px;padding:0 4px;flex:1}
.session-create-cost-form .session-time-fields .time-format{display:none}
.session-create-cost-form .cost-input-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){.session-create-cost-form .cost-input-grid{grid-template-columns:minmax(0,1fr)}}

.session-venue-field{min-width:0}.session-venue-field>small{display:block;font-size:12px;line-height:20px;overflow-wrap:anywhere}
.session-venue-options{margin-top:4px;font-size:12px;min-width:0}.session-venue-options>summary,.session-location-edit>summary{min-height:44px;padding:10px 0;line-height:24px;cursor:pointer;color:var(--forest)}
.session-venue-options :is(p,small){font-size:12px;line-height:20px}.session-venue-options .field{margin:8px 0}.session-venue-options select{max-width:100%;min-width:0}

.group-finance{margin-block:20px;padding:0;overflow:hidden}.group-finance>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px;cursor:pointer;font-size:19px;font-weight:750;color:var(--green,#153e32);background:linear-gradient(110deg,#f0f6eb,#fafcf8)}.group-finance summary small{display:block;font-size:13px;font-weight:400;color:#627365;margin-top:5px;line-height:1.5}.group-ledger-open{font-size:13px;white-space:nowrap}.group-finance-content{padding:24px}.collection-qr{display:grid;grid-template-columns:200px minmax(0,1fr);gap:28px;align-items:center;background:#f6f8f3;border:1px solid #dfe7da;border-radius:16px;padding:24px;margin-block:18px}.collection-qr-image{text-align:center}.collection-qr-image img{display:block;width:100%;max-height:270px;object-fit:contain;background:white;border-radius:10px;margin-bottom:10px}.collection-qr h3{margin:10px 0;font-size:21px;overflow-wrap:anywhere}.collection-qr p{line-height:1.6}.collection-qr small{display:block;line-height:1.6;color:#5f6e61;margin-block:8px}.bank-account-number{display:block;font-size:22px;letter-spacing:1px;overflow-wrap:anywhere;margin-block:8px 14px}.team-disclosure{border:1px solid #dfe6da;border-radius:12px;margin-block:12px;background:white}.team-disclosure>summary{display:flex;align-items:center;gap:14px;flex-wrap:wrap;cursor:pointer;padding:17px 18px;font-weight:650;min-height:56px}.team-disclosure>summary>span:first-child{flex:1;min-width:140px}.team-disclosure>summary:before{content:'›';color:#637961;font-size:22px;transition:transform .15s}.team-disclosure[open]>summary:before{transform:rotate(90deg)}.team-disclosure[open]>summary{border-bottom:1px solid #e5ebdf}.team-disclosure>form,.team-order-detail{padding:20px}.team-order-detail{display:grid;gap:12px}.team-order-detail label:not(.receipt-confirm){display:grid;gap:8px}.team-order-detail input:not([type=checkbox]){width:100%;min-height:44px;border:1px solid #dbe3d5;border-radius:8px;padding:10px;font:inherit}.receipt-confirm{display:flex;gap:12px;align-items:flex-start;line-height:1.6;padding:14px;background:#f1f6e9;border-radius:10px}.receipt-confirm input{width:20px;height:20px;flex-shrink:0;margin-top:3px}.team-person-history{margin:10px 16px;border-bottom:1px solid #e7ebdf;padding-bottom:10px}.team-person-history>summary{display:flex;gap:16px;align-items:center;justify-content:space-between;min-height:56px;padding:10px 0;cursor:pointer}.team-person-history>summary>span:last-child{text-align:right}.team-ledger-row{display:flex;gap:18px;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #edf0e8;line-height:1.5}.team-ledger-row>span{min-width:0;overflow-wrap:anywhere}.team-ledger-row>span:last-child{text-align:right}.team-ledger-row small{display:block;color:#697664;font-size:12px;line-height:1.65}.team-ledger-row b{white-space:nowrap}.team-person-stats{display:flex;flex-wrap:wrap;gap:16px;padding:12px;background:#f6f8f2;font-size:13px}.team-person-stats b{display:block;margin-top:5px}.team-ledger-note{font-size:14px;line-height:1.7;background:#f4f7ef;padding:14px;border-radius:10px}.team-disclosure>p{padding:12px 18px}.payment-image-input{display:grid;gap:9px}.payment-image-input>label{display:grid;gap:10px}.payment-image-input input[type=file]{width:100%;max-width:100%;font-size:14px}.payment-image-input small{font-size:12px;color:#63745f;line-height:1.6}.payment-image-preview{border:1px dashed #cad7bf;border-radius:10px;padding:12px;max-width:100%;min-width:0}.payment-image-preview summary{cursor:pointer;font-size:14px;padding:5px;min-height:34px}.payment-image-preview img{display:block;max-width:100%;max-height:650px;object-fit:contain;margin:14px auto;background:#f7f8f3}.team-review-queue{margin-block:24px}.group-finance summary:focus-visible,.team-disclosure summary:focus-visible{outline:3px solid #6a932d;outline-offset:-3px}.group-finance button{min-height:40px}.team-order-detail small{overflow-wrap:anywhere}
@media(max-width:600px){.group-finance>summary{padding:18px;font-size:17px}.group-finance-content{padding:14px}.collection-qr{grid-template-columns:1fr;padding:18px;gap:16px}.collection-qr-image{max-width:210px;margin:auto}.collection-qr h3{font-size:19px}.team-disclosure>summary{padding:14px 12px;gap:9px;font-size:14px}.team-person-history{margin-inline:10px}.team-order-detail,.team-disclosure>form{padding:14px}.team-ledger-row{padding:12px 8px;gap:10px;font-size:13px}.team-person-history>summary{font-size:14px}.team-order-detail .wallet-actions{display:grid;grid-template-columns:1fr}.group-finance button{min-height:44px}.group-ledger-open{white-space:normal;font-size:12px;max-width:55px}.team-ledger-row b{white-space:normal;text-align:right}.team-disclosure>summary>b{margin-left:auto}.group-finance summary small{font-size:12px}}
@media(prefers-reduced-motion:reduce){.team-disclosure>summary:before{transition:none}}

.payment-reminder-actions{display:grid;gap:8px;justify-items:start;max-width:250px}.payment-reminder-actions small{display:block;font-size:12px;line-height:1.6;overflow-wrap:anywhere}.member-payment-reminders{margin-block:18px}.member-payment-reminders>p{font-size:14px;line-height:1.6;color:#63745f}.member-payment-reminders>.button{margin-top:14px}.settlement-preview{border:1px solid #dce6d5;border-radius:12px;padding:16px}.settlement-preview h3{margin-top:0}

/* Keep the full uploaded QR intact with a white margin for scanning. */
.collection-qr{grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:30px}.collection-qr-image{width:100%;max-width:340px}.qr-enlarge{display:grid;gap:12px;width:100%;padding:18px;border:1px solid #dce5d7;border-radius:16px;background:#fff;color:#315a3e;cursor:zoom-in}.qr-enlarge img{width:100%;height:auto;max-height:440px;border-radius:0;margin:0;object-fit:contain}.qr-enlarge span{font-size:13px;font-weight:600}.qr-enlarge:focus-visible{outline:3px solid #61813f;outline-offset:3px}.collection-qr-image>a{display:inline-flex;align-items:center;min-height:44px;margin-top:4px}.qr-large-view{display:grid;justify-items:center;gap:12px;padding:16px 24px 24px;text-align:center;overflow-wrap:anywhere}.qr-large-view img{display:block;width:min(100%,560px);max-height:65vh;object-fit:contain;background:white;padding:20px;border-radius:12px}.qr-large-view p{margin:0;line-height:1.6}
@media(max-width:800px){.collection-qr{grid-template-columns:1fr}.collection-qr-image{max-width:340px;margin-inline:auto}.collection-qr{padding:16px}.qr-enlarge{padding:14px}.qr-large-view{padding:12px}.qr-large-view img{padding:12px;max-height:65vh}}
.group-section-tabs{display:flex;gap:8px;padding:5px;background:#edf2e7;border-radius:12px;margin:22px 0}.group-section-tabs>button{flex:1;min-height:46px;border:0;border-radius:9px;background:transparent;color:#52674c;font:inherit;font-size:14px;font-weight:650;padding:10px;cursor:pointer}.group-section-tabs>button.active{background:#fff;color:#1d4936;box-shadow:0 2px 6px #153e3212}.group-section-tabs>button:focus-visible{outline:3px solid #6a932d}.group-section-heading{gap:16px;flex-wrap:wrap}.group-add-member{position:relative}.group-add-member>summary{list-style:none;display:flex;align-items:center;gap:8px;cursor:pointer}.group-add-member>summary::-webkit-details-marker{display:none}.group-add-options{display:grid;gap:8px;position:absolute;right:0;top:calc(100% + 8px);width:300px;background:#fff;padding:12px;border:1px solid #d7e1ce;border-radius:12px;box-shadow:0 12px 30px #173a2520;z-index:5}.group-add-options>.button{display:block;text-align:left;white-space:normal;padding:12px;min-height:64px}.group-add-options small{display:block;font-weight:400;font-size:12px;line-height:1.6;color:#607256;margin-top:6px}.group-session-content{padding:18px}.group-session-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.group-session-totals>div{padding:15px;border-radius:10px;background:#f3f6ed;min-width:0}.group-session-totals span{display:block;color:#617454;font-size:12px;line-height:1.55;min-height:38px}.group-session-totals b{display:block;font-size:20px;line-height:1.5;overflow-wrap:anywhere;margin-top:8px}.group-session-filters{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.group-session-filters .button[aria-pressed=true]{background:#214b36;color:#fff;border-color:#214b36}.session-money-card{margin:12px 0;border:1px solid #dde6d5;border-radius:12px;padding:8px 16px}.session-money-card>summary{gap:18px}.session-money-status{display:grid;justify-items:end;gap:8px}.session-money-status>span{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.session-money-card .badge{font-size:11px;white-space:normal}.session-money-breakdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px;background:#f5f7f1;border-radius:10px;font-size:12px;line-height:1.6;color:#637057}.session-money-breakdown b{display:block;color:#294333;font-size:14px}.session-money-breakdown small{display:block}.session-money-card h4{font-size:14px;margin:18px 0 8px}.session-expense-details{padding:14px 0;font-size:13px}.session-expense-details>summary{min-height:44px;cursor:pointer;display:flex;align-items:center;color:#365d3d;font-weight:600}.session-expense-details>p{color:#68775e;font-size:12px;line-height:1.6}.group-detail>.group-finance{box-shadow:none}.group-session-finance .team-ledger-row:first-of-type{border-top:1px solid #edf0e8}
@media(max-width:900px){.group-session-totals{grid-template-columns:1fr 1fr}.session-money-breakdown{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.group-section-tabs>button{font-size:13px;padding:9px}.group-add-member{width:100%}.group-add-member>summary{justify-content:center}.group-add-options{position:static;width:100%;margin-top:8px;box-shadow:none}.group-session-content{padding:12px}.group-session-totals{gap:8px}.group-session-totals>div{padding:10px}.group-session-totals b{font-size:17px}.session-money-card{padding:8px 10px}.session-money-card>summary{flex-direction:column;align-items:stretch;gap:12px}.session-money-status{justify-items:start!important;text-align:left!important}.session-money-status>span{justify-content:flex-start}.session-money-breakdown{padding:10px;gap:10px}.group-session-content .team-ledger-row{align-items:flex-start}.group-session-content .team-ledger-row>span:last-child{max-width:45%}.group-session-filters .button{flex:1 1 44%;font-size:12px}.group-detail .group-finance-content{padding:10px}.group-detail .group-finance>summary{padding:16px;font-size:16px}}
/* A single visible period control, readable receipts, and a top-up entry above the fold. */
.finance-period{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px;background:#f5f7f1;border:1px solid #e3e9dc;border-radius:12px;margin:16px 0}.manager-collection>.finance-period{margin:16px 20px}.finance-period-modes{display:flex;flex-wrap:wrap;gap:5px}.finance-period-modes button{min-height:44px;padding:10px 14px;border:1px solid transparent;background:transparent;border-radius:8px;color:#3c563c;font:inherit;font-size:14px;cursor:pointer}.finance-period-modes button[aria-pressed=true]{background:#214b36;color:white}.finance-date-range{display:flex;gap:12px;flex-wrap:wrap}.finance-date-range>label{display:grid;gap:6px;font-size:12px;color:#576c4d}.finance-event-list{padding:4px 20px 20px}.finance-event{display:flex;align-items:center;gap:14px;padding:18px 0;border-bottom:1px solid #e9eddf}.finance-event-sign{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#edf5e3;color:#2d6836;font-size:22px;flex-shrink:0}.finance-event-sign.out{background:#fff2e4;color:#ad6b29}.finance-event>div{flex:1;min-width:0;overflow-wrap:anywhere}.finance-event p{margin:5px 0;font-size:13px;color:#617155}.finance-event small{display:block;line-height:1.6;font-size:12px;color:#718066}.finance-event>b{text-align:right;min-width:0;overflow-wrap:anywhere}.finance-admin-tools{margin-top:20px}.finance-admin-tools>summary{padding:22px;cursor:pointer;font-weight:650;color:#254b35}.ledger-period-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0 24px}.ledger-period-totals>div{background:#f2f6eb;border-radius:10px;padding:15px;min-width:0}.ledger-period-totals span{display:block;font-size:13px;color:#627357;line-height:1.5}.ledger-period-totals b{display:block;font-size:19px;margin-top:10px;overflow-wrap:anywhere}.member-top-up-bar,.member-fund-alert{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border:1px solid #dce6d1;border-radius:14px;margin:18px 0;background:#eff6e6}.member-top-up-bar small{display:block;color:#627657;font-size:13px;margin-top:6px}.member-fund-alert{background:#fff8eb;border-color:#f0ddba}.member-fund-alert p{font-size:14px;line-height:1.6;color:#7b6545;margin-bottom:0}.member-fund-alert .button{flex-shrink:0}.portal-top-up{padding:0 24px 24px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}.portal-top-up>.top-up-debt-note,.portal-top-up>.portal-success,.portal-top-up>.error-banner{grid-column:1/-1;margin:0;padding:14px;background:#f5f7ed;border-radius:10px;line-height:1.6}.portal-top-up .collection-qr{grid-template-columns:1fr;gap:12px;padding:16px;margin:0}.portal-top-up .collection-qr-image{max-width:340px;margin:auto}.portal-top-up .member-payment-request{margin:0;padding:0;border:0}.portal-top-up .member-payment-request h2{font-size:20px;margin-top:0}.portal-top-up .finance-operation-form{padding:0;display:grid;grid-template-columns:1fr;gap:16px}.portal-top-up .finance-operation-form label{min-width:0}.portal-top-up .finance-operation-form select,.portal-top-up .finance-operation-form input{max-width:100%}.portal-top-up .qr-enlarge img{max-height:340px}.session-money-card .team-ledger-row .button{margin-top:10px}.manager-collection>.group-session-finance{margin:16px 20px}.member-personal+.member-fund-alert{margin-top:-8px}
@media(max-width:650px){.finance-period{padding:12px;gap:10px}.manager-collection>.finance-period,.manager-collection>.group-session-finance{margin:12px}.finance-period-modes{width:100%;display:grid;grid-template-columns:1fr 1fr}.finance-period-modes button{font-size:13px;padding:9px}.finance-date-range{width:100%;display:grid;grid-template-columns:1fr}.finance-period>.picker-field{width:100%}.finance-event-list{padding:0 14px 14px}.finance-event{gap:10px;align-items:flex-start;flex-wrap:wrap}.finance-event>b{margin-left:50px;font-size:15px}.finance-event>div{flex-basis:calc(100% - 55px)}.ledger-period-totals{grid-template-columns:1fr;gap:8px}.ledger-period-totals>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.ledger-period-totals b{font-size:17px;margin:0;text-align:right}.member-top-up-bar,.member-fund-alert{padding:16px;flex-wrap:wrap}.member-fund-alert .button{width:100%}.portal-top-up{padding:0 14px 18px;grid-template-columns:1fr;gap:20px}.portal-top-up .collection-qr{padding:12px}.portal-top-up .qr-enlarge img{max-height:300px}.portal-top-up input,.portal-top-up select{font-size:16px}.finance-admin-tools>summary{font-size:15px;padding:18px}}
.group-session-finance summary small{display:block;font-size:13px;font-weight:400;color:#627365;margin-top:5px;line-height:1.6}.collection-qr-image>img{padding:16px;max-height:440px;border:1px solid #e0e6db;border-radius:12px}.portal-top-up .collection-qr-image>img{max-height:360px}.manager-finance-context>.wallet-actions{flex-wrap:wrap}.finance-period button:focus-visible{outline:3px solid #76a544;outline-offset:2px}
.wallet-period-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0;padding:16px;background:#f5f8ef;border:1px solid #e0e7d7;border-radius:12px}.wallet-period-summary>div{padding:12px;min-width:0;border-radius:9px;background:white}.wallet-period-summary span{font-size:13px;line-height:1.5;color:#5b704e;display:block}.wallet-period-summary b{display:block;font-size:20px;overflow-wrap:anywhere;margin:10px 0 4px}.wallet-period-summary small{display:block;font-size:12px;color:#6d7b63;line-height:1.55}.wallet-period-summary>.wallet-period-end{background:#e7f1d9}.wallet-period-summary>p{grid-column:1/-1;font-size:12px;color:#607352;line-height:1.7;margin:4px 0}.finance-member-wallets{padding:0 20px 20px}.finance-member-wallet-detail{padding:0 18px 18px}.finance-member-wallets summary small{display:block;font-size:12px;font-weight:400;color:#647358;line-height:1.65;margin-top:5px}.finance-expense-popup{padding:0 20px 20px}.finance-expense-popup .finance-operations{margin:0}.team-ledger>.team-disclosure>.finance-period{margin:12px 16px}
@media(max-width:800px){.wallet-period-summary{grid-template-columns:1fr 1fr}.wallet-period-summary b{font-size:18px}}
@media(max-width:500px){.wallet-period-summary{padding:10px;gap:8px}.wallet-period-summary>div{padding:10px}.wallet-period-summary b{font-size:16px}.wallet-period-summary span{font-size:12px}.finance-member-wallets{padding:0 12px 12px}.finance-member-wallet-detail{padding:0 10px 12px}.finance-expense-popup{padding:0 12px 12px}.finance-member-wallets summary>span:last-child{width:100%;text-align:right}}
.group-expenses{padding:20px}.group-expenses h3{margin:0 0 8px;font-size:22px}.group-expenses .member-section-heading{align-items:flex-start}.group-expenses .member-section-heading p{font-size:14px;color:#627257;line-height:1.65;margin:0}.expense-overview{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.expense-overview>div{background:#f0f5e8;border-radius:12px;padding:18px;min-width:0}.expense-overview span,.expense-overview small{display:block;color:#607652;font-size:13px;line-height:1.6}.expense-overview b{display:block;font-size:24px;margin:8px 0;overflow-wrap:anywhere}.group-expense-card{border:1px solid #dfe7d7;border-radius:12px;padding:18px;margin:12px 0;background:white;overflow-wrap:anywhere}.group-expense-card .member-section-heading{margin:0}.group-expense-card p{font-size:15px;line-height:1.65;margin:12px 0;color:#355033}.group-expense-card small{display:block;color:#637657;line-height:1.7;font-size:12px}.group-section-tabs{flex-wrap:wrap}.group-section-tabs>button{flex-basis:140px}
@media(max-width:600px){.group-expenses{padding:14px}.expense-overview{grid-template-columns:1fr}.expense-overview b{font-size:22px}.group-expenses h3{font-size:20px}.group-expense-card{padding:14px}.group-expense-card .member-section-heading{flex-wrap:wrap;gap:8px}}
.heading-actions .heading-account{order:10;min-width:44px;min-height:44px;flex-shrink:0}.main-shell>.main-content{padding-top:28px}
@media(max-width:650px){.main-shell>.main-content{padding-top:20px}.heading-actions .heading-account{margin-left:auto}}

.finance-quick-actions{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 22px}.finance-toolbar .tabs{display:flex;flex-wrap:wrap;gap:6px}.finance-history-filter{padding:0 20px}.manager-collection>.group-income{margin:16px 20px}.group-income>.form-hint,.group-income>.group-session-filters{margin:14px 16px}.group-income>.team-ledger-row{padding:16px;gap:16px;align-items:flex-start}.group-income>.team-ledger-row>span{min-width:0;overflow-wrap:anywhere}.group-income>.team-ledger-row>b{white-space:nowrap}.group-income>.button{margin:12px 16px}.group-income>summary{flex-wrap:wrap}.group-income>summary>b{white-space:nowrap}.manager-finance-stats .stat{min-width:0}
@media(max-width:600px){.finance-quick-actions{display:grid;grid-template-columns:1fr 1fr}.finance-quick-actions>.button{padding:10px;font-size:13px;min-height:44px}.finance-toolbar .tabs{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.finance-toolbar .tabs>button{min-height:44px;padding:8px;font-size:13px}.manager-collection>.group-income{margin:12px}.group-income>.team-ledger-row{flex-wrap:wrap}.group-income>.team-ledger-row>b{margin-left:auto}.finance-history-filter{padding:0 12px}}

.manager-finance-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-toolbar{border-bottom:1px solid #e3e9de}.finance-toolbar>.tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:8px}.finance-toolbar>.tabs>button{min-height:46px}.finance-advanced-link{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:18px 4px;color:#66745c}.finance-advanced-link small{font-size:12px}.group-fund-balance{padding:20px 24px;margin:18px 0;border-radius:14px;background:#edf5e5;border:1px solid #d8e6cb}.group-fund-balance span,.group-fund-balance small{display:block;color:#506447;line-height:1.6}.group-fund-balance strong{display:block;font-size:30px;color:#234f35;margin:8px 0}.expense-form{gap:18px}.expense-form label{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:600}.expense-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.expense-form textarea{width:100%;resize:vertical;border:1px solid #d7dfcf;border-radius:10px;padding:12px;font:inherit}.expense-fund-available{margin:0;padding:12px 16px;background:#f0f6e9;border-radius:10px;font-size:14px;display:flex;justify-content:space-between;gap:12px}.expense-form .form-footer{margin-top:4px}.finance-expense-popup{padding:0}.group-income summary small{display:block;font-size:12px;font-weight:400;margin-top:5px;color:#627257}
@media(max-width:600px){.manager-finance-stats{grid-template-columns:1fr 1fr}.manager-finance-stats>.stat:first-child{grid-column:1/-1}.expense-form-row{grid-template-columns:1fr}.group-fund-balance{padding:16px}.finance-history-filter{flex-wrap:wrap}.finance-advanced-link{align-items:flex-start;flex-direction:column}}

.main-shell>.main-content{padding-top:18px}.page-heading{margin-bottom:20px}.system-admin-tabs{padding:0 24px 16px}.system-settings-form,.system-accounts,.system-audit{padding:20px 24px}.system-settings-form fieldset{border:0;padding:0;display:grid;gap:20px;min-width:0}.system-settings-form label,.system-accounts label{display:grid;gap:8px}.system-settings-form input,.system-settings-form textarea,.system-accounts input{padding:11px;border:1px solid #d7dfd2;border-radius:8px;width:100%;font:inherit}.system-settings-form label>small,.system-settings-form p{font-size:13px;color:#65715d}.system-rank-row{display:grid;grid-template-columns:44px minmax(100px,1fr) minmax(150px,2fr);align-items:center;gap:14px;padding:16px;background:#f7f9f4;border-radius:10px}.system-account-row{display:flex;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid #e7ecdf}.system-account-row>div{flex:1;min-width:0}.system-account-row small{display:block;color:#65715d;font-size:12px;line-height:1.7}.system-audit pre{overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;padding:14px}.system-admin>.error-banner,.system-admin>.green-text{margin:16px 24px}@media(max-width:650px){.main-shell>.main-content{padding-top:12px}.system-rank-row{grid-template-columns:1fr}.system-account-row{flex-wrap:wrap}.system-account-row>div{flex-basis:100%}.system-settings-form,.system-accounts,.system-audit{padding:16px}.system-admin-tabs{padding:0 16px 12px}}
.expense-form select,.expense-form input:not([type=hidden]){min-height:44px;border:1px solid #d7dfcf;border-radius:10px;padding:10px 12px;background:#fff;font-size:16px;font-weight:400}.expense-form>label,.expense-form-row{margin-top:14px}.expense-form .money-input input{font-weight:650}.expense-form .form-footer{margin-top:20px}.system-admin .form input{min-height:44px;width:100%;padding:10px;border:1px solid #d7dfcf;border-radius:8px}
.app-shell[data-page=finance] .group-context{padding:14px 18px;margin-bottom:16px;gap:12px}.app-shell[data-page=finance] .group-context-copy small{display:none}.app-shell[data-page=finance] .group-context-copy strong{font-size:18px}.manager-finance-stats{margin-bottom:16px}.manager-finance-stats>.stat{padding:16px 18px}.manager-finance-stats>.stat>strong{font-size:25px;margin:8px 0}.finance-quick-actions{margin-bottom:16px}.finance-toolbar{padding:14px 18px}.manager-collection>.finance-period{margin:12px 18px}.manager-collection>.table-note{margin-top:10px;margin-bottom:10px}.manager-debt-filters{padding-top:10px}.finance-history-filter{margin-block:12px}

.money-out{color:#b42318!important}.money-in{color:#227143!important}
.compact-filter-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:end;padding:16px;background:#f6f8f3;border:1px solid var(--border);border-radius:12px;margin-bottom:16px}
.compact-filter-bar label{display:grid;gap:6px;flex:1 1 170px;font-size:13px;color:var(--muted)}
.compact-filter-bar input,.compact-filter-bar select{width:100%;min-height:44px;min-width:0}
.wallet-overview{padding:0 20px 20px}.wallet-table-summary{display:flex;flex-wrap:wrap;gap:12px 24px;font-size:13px;margin:16px 0}
.wallet-table-scroll{overflow:auto;max-height:620px;border:1px solid var(--border);border-radius:12px}
.wallet-overview-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.wallet-overview-table caption{caption-side:bottom;text-align:left;padding:12px;white-space:normal;color:var(--muted);background:#f7f9f4}
.wallet-overview-table th,.wallet-overview-table td{padding:10px 14px;border-bottom:1px solid var(--border);text-align:right}
.wallet-overview-table thead th{position:sticky;top:0;background:#f1f5eb;z-index:1;font-weight:600}
.wallet-overview-table th:first-child{text-align:left;min-width:160px}.wallet-overview-table th small{display:block;color:var(--muted);font-weight:400}
.wallet-overview-table tbody tr:hover{background:#f7faf2}.wallet-overview-table .text-button{font-weight:600;min-height:36px;text-align:left}
.list-pagination{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:12px;margin-top:16px;font-size:13px}.list-pagination>span:first-child{margin-right:auto}
.vote-person-search{display:grid;gap:8px;font-size:13px;max-width:360px;margin-bottom:12px}
@media(max-width:760px){.wallet-overview{padding:0 12px 16px}.wallet-table-summary{gap:10px}.compact-filter-bar{padding:12px}.wallet-overview-table th,.wallet-overview-table td{padding:8px 10px}}

/* Desktop density: retain readable text and touch targets, reduce decorative space. */
.play-hero{min-height:0;padding:20px 24px;align-items:center}.play-hero h2{font-size:26px;line-height:1.2;margin:0 0 8px}.play-hero .eyebrow{display:none}.play-hero p{margin:0;max-width:none;font-size:14px}.play-hero::after{display:none}
.play-content{padding-top:16px}.play-panel{padding:18px}.play-section-heading{margin-bottom:16px}.play-section-heading h3{font-size:18px}.play-recruit-card{padding:16px}.play-recruit-card h3{font-size:18px}.play-terms{padding:10px}.play-recruit-grid{gap:14px}.player-directory{padding:18px}.player-directory .section-title{padding:0 0 16px}.public-player-profile p{white-space:pre-wrap}
.manager-finance-heading{padding:14px 18px;margin-bottom:14px}.manager-finance-heading h2{font-size:22px}.manager-finance-heading .eyebrow{display:none}.manager-finance-stats{gap:12px;margin-bottom:14px}.manager-finance-stats .stat{padding:14px 18px;min-height:0}.manager-finance-stats .stat>strong{font-size:26px;margin:6px 0}.manager-finance-stats .stat-icon{display:none}.finance-quick-actions{margin-block:12px}.finance-toolbar{padding-block:12px}
.finance-period{padding:12px 18px;gap:10px}.table-note{line-height:1.5}.list-pagination{padding:12px 16px}.list-pagination label{display:flex;align-items:center;gap:8px}.list-pagination select{min-height:36px;padding:5px 8px}
.members-table td,.members-table th{padding:10px 12px}.members-table .avatar{width:34px;height:34px;font-size:12px}.members-table .person-cell{gap:9px}.members-table small{margin-top:3px;font-size:12px}.members-table .rank-badge{font-size:11px}.members-panel .table-wrap{max-height:70vh;overflow:auto}.members-table thead th{position:sticky;top:0;z-index:1;background:#f1f5eb}
.session-cards{gap:14px}.session-card{padding:16px}.session-card h2{font-size:18px;margin:12px 0}.session-card p{margin:6px 0;font-size:13px}.session-card-people{margin-block:10px}.session-card-bottom{padding-top:10px}.session-card-bottom strong{font-size:20px}
.system-admin .section-title{padding-bottom:16px}.system-account-row{padding:12px 0}.system-settings-form fieldset{min-width:0}.system-rank-row{padding:10px 0}
@media(min-width:1100px){.session-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.play-recruit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.manager-finance-stats .stat-detail{font-size:12px}}
@media(max-width:760px){.play-hero{padding:16px;gap:14px;flex-wrap:wrap}.play-hero h2{font-size:22px}.play-hero p{font-size:13px}.manager-finance-stats .stat>strong{font-size:21px}.player-directory{padding:12px}.list-pagination{padding:10px 0;gap:8px}.list-pagination label{width:100%}.wallet-overview-table{font-size:13px}}

.group-context{min-height:0;padding:10px 14px;margin-bottom:14px;border-radius:10px}.group-context-actions{width:100%;justify-content:flex-start;gap:10px}.group-context-actions>label{display:flex;align-items:center;gap:12px;font-size:13px;flex-direction:row}.group-context-actions .group-picker{min-width:220px}.group-context-actions .group-picker-trigger{min-height:40px}.group-context-actions>.group-refresh{margin-left:auto}.group-context-actions .button{min-height:40px}
.page-heading{margin-bottom:16px}.page-heading h1{font-size:27px}.page-heading p{margin-top:6px}.finance-period{margin:8px 18px;padding:8px 10px}.finance-period-modes button{padding:8px 12px;min-height:40px}.finance-period .picker-trigger{min-height:40px}.manager-collection>.table-note{margin:8px 18px 12px;padding:0}.finance-toolbar{padding:10px 18px}.finance-toolbar .tabs button{min-height:40px;padding:8px 14px}.compact-filter-bar{padding:10px 12px;gap:10px;margin-bottom:12px}.compact-filter-bar input,.compact-filter-bar select{font:inherit;color:var(--forest-deep);background:white;border:1px solid var(--border);border-radius:8px;padding:8px 10px;min-height:40px}.wallet-table-summary{margin:10px 0}.wallet-overview-table .small-button{min-height:34px;padding:6px 10px}.wallet-overview-table th,.wallet-overview-table td{padding:8px 12px}.wallet-overview-table .text-button{min-height:32px}
.attendance-honors{padding:18px 22px;margin-bottom:16px}.honors-heading h2{font-size:19px;margin:4px 0}.honors-heading p{display:none}.honors-podium{max-width:650px;margin:10px auto 0;gap:12px}.honors-person{padding:6px 10px}.honors-avatar .avatar,.honors-placeholder{width:48px;height:48px;font-size:18px}.honors-place-1 .honors-avatar .avatar{width:60px;height:60px;font-size:20px}.honors-cup{width:20px;height:20px;margin-bottom:2px}.honors-name{font-size:13px;margin-top:6px}.honors-count{font-size:17px}.honors-hours{font-size:11px;margin-top:2px}.honors-step{height:44px!important;min-height:0!important;margin-top:6px;padding:6px}.honors-step b{font-size:20px}.honors-step span{display:none}.honors-place-1 .honors-step{height:62px!important}.honors-place-3 .honors-step{height:32px!important}.honors-rule{font-size:11px;margin-top:8px;padding-top:8px}.honors-empty{padding:14px}
.play-toolbar{margin:0 0 14px;gap:10px;flex-wrap:wrap}.play-toolbar>.button:first-child{order:2}.play-tabs{margin-right:auto}.play-panel .play-form{gap:14px}.play-recruit-card .play-terms p{margin:5px 0}.recruit-rank-filter{padding:12px;margin-bottom:14px}.system-summary{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}.system-summary>span{padding:10px 14px;border:1px solid var(--border);border-radius:10px;background:#f6f8f3;font-size:13px}.system-summary b{margin-left:8px}.system-settings-save{position:sticky;bottom:0;padding:12px 0;background:white;border-top:1px solid var(--border)}
.clubs-intro{min-height:0;padding:20px 24px}.clubs-intro .eyebrow{display:none}.clubs-intro h2{font-size:24px;line-height:1.3}.clubs-intro h2 br{display:none}.clubs-intro p{margin-bottom:0}.club-card{padding:14px}.club-card-copy small{display:none}.group-facts{margin-block:14px}.group-facts>div{padding:12px}.group-next{padding:14px;margin-block:14px}.group-person{padding-block:10px}.clubs-settings{padding:20px}
@media(max-width:760px){.group-context{padding:10px}.group-context-actions{flex-wrap:wrap}.group-context-actions>label{flex:1;display:grid;gap:6px;min-width:0}.group-context-actions .group-picker{min-width:0;width:100%}.group-context-actions>.group-refresh{margin-top:20px}.group-context-actions>a{font-size:12px}.page-heading h1{font-size:23px}.page-heading{gap:10px;margin-bottom:14px}.page-heading p{font-size:13px}.attendance-honors{padding:14px 10px}.honors-podium{gap:6px}.honors-heading{gap:8px}.honors-name{font-size:12px}.honors-rule{font-size:11px}.honors-person{padding:4px}.finance-period{margin:8px 12px;flex-wrap:wrap}.finance-period-modes{flex-wrap:wrap}.finance-period-modes button{font-size:12px;padding:8px}.play-tabs{width:100%}.play-tabs button{flex:1;padding:10px 8px}.clubs-intro{padding:16px}.clubs-settings{padding:14px}.clubs-intro h2{font-size:21px}}

.honors-compact-summary{display:flex;align-items:center;gap:18px;cursor:pointer;list-style:none}.honors-compact-summary>span:first-child{display:flex;align-items:center;gap:8px;font-weight:650;font-size:14px;color:#765819}.honors-preview{display:flex;gap:20px;flex:1;justify-content:center}.honors-preview>span{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600}.honors-preview small{display:block;color:#69735f;font-weight:400}.honors-compact-summary .text-button{font-size:12px;white-space:nowrap}.attendance-honors details[open]>.honors-compact-summary{border-bottom:1px solid #e8e4d4;padding-bottom:14px;margin-bottom:14px}
@media(max-width:760px){.honors-compact-summary{flex-wrap:wrap;gap:12px}.honors-preview{order:2;flex-basis:100%;justify-content:space-between;gap:8px}.honors-preview>span{display:grid;text-align:center;justify-items:center;font-size:11px;flex:1}.honors-compact-summary .text-button{margin-left:auto}.group-section-tabs{overflow:auto;white-space:nowrap}.group-payment-settings>.button{margin-block:12px}}

.passes-heading{padding:18px 22px;min-height:0}.passes-heading h2{font-size:25px;line-height:1.3}.passes-heading h2 br{display:none}.passes-eyebrow{display:none}.passes-heading p{font-size:13px;margin-bottom:0}.passes-notice{padding:10px 16px}.passes-notice p{margin:4px 0}.pass-lifecycle{margin-block:12px}.pass-lifecycle li{padding:8px 12px;font-size:12px}.passes-toolbar{padding:12px}.passes-card{padding:16px}.venue-heading{padding:16px 20px}.venue-heading h2{font-size:21px}.venue-heading>svg{width:32px;height:32px}.venue-body{padding:16px 20px}.community-panel{padding:18px}.community-panel h2{font-size:17px;margin-bottom:14px}.friend-row,.invite-row{padding:12px 0}.group-payment-settings{display:grid;gap:14px}.group-payment-settings>.button{justify-self:start}.team-review-queue{margin-top:10px}.group-payment-settings .collection-qr{margin:0}
@media(min-width:1100px){.passes-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.passes-heading{padding:16px}.passes-heading h2{font-size:21px}.venue-heading,.venue-body{padding:14px}.pass-lifecycle{display:flex;overflow:auto;white-space:nowrap}.community-panel{padding:14px}}

.sidebar-mascot{display:flex;align-items:center;justify-content:center;gap:12px;min-height:64px;margin:6px 0;color:#d7e5da;flex-shrink:0}.mascot-toggle{min-height:44px;padding:8px 10px;border:1px solid #375548;border-radius:8px;color:inherit;background:transparent;font:inherit;font-size:12px;cursor:pointer}.mascot-toggle:hover{background:#244c3c}.club-mascot-character:focus-visible,.mascot-toggle:focus-visible{outline:3px solid #d2f394;outline-offset:3px;border-radius:12px}.sidebar-mascot:has(.mascot-toggle[aria-pressed=false]){min-height:44px}.sidebar-refined .sidebar-account{margin-top:8px}.sidebar-refined>nav{flex:1}
@media(max-width:760px){.sidebar-mascot{display:none}}

/* Original Golden artwork with pointer and pet reactions. */
.sidebar-mascot{position:relative;gap:6px;min-height:100px}.golden-mascot-character{display:block;flex-shrink:0;width:112px;height:100px;border:0;padding:0;border-radius:12px;background:transparent;cursor:pointer;overflow:hidden}.golden-mascot-character canvas{display:block;width:112px;height:100px;transform-origin:50% 78%;pointer-events:none}.golden-mascot-quote{position:absolute;bottom:100%;left:0;right:0;padding:12px;border-radius:12px;background:#fffdf4;color:#294d3a;font-size:12px;line-height:1.5;box-shadow:0 4px 16px #102d3026;z-index:2}.golden-mascot-quote strong{display:block;margin-bottom:4px}.sidebar-mascot audio{display:none}

.cashbook-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0 18px}.cashbook-summary>div{padding:14px 16px;border:1px solid var(--line,#dfe5db);border-radius:12px;background:#f8faf6;display:grid;gap:5px}.cashbook-summary span{font-size:13px;color:#59665c}.cashbook-summary strong{font-size:23px;line-height:1.25}.cashbook-summary small{font-size:11px;color:#667267}.cashbook-table{width:100%;border-collapse:collapse}.cashbook-table th,.cashbook-table td{padding:11px 12px;border-bottom:1px solid #e7ebe4;text-align:left;font-size:13px}.cashbook-table th:last-child,.cashbook-table td:last-child{text-align:right;white-space:nowrap}.cashbook-table td small{display:block;color:#657064;margin-top:4px;overflow-wrap:anywhere}.cashbook-table td:nth-child(2){max-width:360px}.cashbook-table .is-you{background:#f0f7e9}.cashbook-filter-total{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:12px 0;font-size:12px;color:#526351}.cashbook-panel{padding:16px}.finance-operations-heading h3{font-size:18px}.finance-operations .finance-disclosure{margin-top:12px}.expense-form{gap:14px}.expense-form .expense-fund-available{margin:0;font-size:13px}.expense-form .form-footer{margin-top:4px}
@media(max-width:600px){.cashbook-summary{gap:8px;grid-template-columns:1fr 1fr}.cashbook-summary>div:first-child{grid-column:1/-1}.cashbook-summary strong{font-size:19px}.cashbook-table th,.cashbook-table td{padding:9px 8px}.cashbook-panel{padding:12px}}

/* Golden walks along the visible viewport, independent of page length. */
.cat-stage{position:fixed;inset:auto 0 0 252px;margin:0;min-height:0;height:116px;border:0;background:none;isolation:isolate;z-index:38;pointer-events:none}
.cat-stage:has(.cat-toggle[aria-pressed=false]){min-height:0;height:64px}
.cat-stage .court-cat{pointer-events:none;bottom:max(8px,env(safe-area-inset-bottom))}
.cat-stage .cat-pet,.cat-stage .cat-toggle{pointer-events:auto}
.cat-stage .cat-toggle{bottom:max(20px,env(safe-area-inset-bottom));right:16px}
.main-shell{padding-bottom:120px}
.golden-cat-canvas{transform-origin:50% 78%}
@media(max-width:760px){.cat-stage{left:0;margin:0;height:104px;min-height:0}.main-shell{padding-bottom:112px}.cat-stage .cat-toggle{right:12px;bottom:max(16px,env(safe-area-inset-bottom))}}

/* Finance audit: readable supporting text and full-size interactive targets. */
:is(.manager-collection,.group-finance,.wallet-ledger,.finance-operations,.member-finance-tabs,.portal-ledger,.member-top-up-bar) :is(button,select,summary),
.finance-period .finance-period-modes button,.finance-period .picker-trigger,
.finance-operation-form label:has(input[type=checkbox]),.finance-operations .finance-adjustment-confirm{min-height:44px}
:is(.manager-collection,.group-finance,.wallet-ledger,.finance-operations,.portal-ledger) :is(button,select){min-width:44px}
:is(.manager-collection,.group-finance,.wallet-ledger,.finance-operations,.portal-ledger) :is(small,.badge,.eyebrow),
.group-cashbook .cashbook-summary small{font-size:12px}
:is(.manager-collection,.group-finance,.wallet-ledger,.finance-operations,.portal-ledger) .compact-filter-bar :is(input,select){min-height:44px}
:is(.manager-collection,.group-finance,.wallet-ledger,.finance-operations,.portal-ledger) :focus-visible{outline:3px solid #418b73;outline-offset:3px}
.group-cashbook,.wallet-overview,.wallet-table-scroll,.group-session-content{min-width:0;max-width:100%}
.group-cashbook .cashbook-table td,.group-session-content .team-ledger-row>span,.wallet-ledger .ledger-row>div,.finance-operations-heading h3{overflow-wrap:anywhere;min-width:0}
@media(max-width:600px){
 .wallet-overview .wallet-overview-table{white-space:normal;table-layout:fixed}
 .wallet-overview .wallet-overview-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .wallet-overview .wallet-overview-table tbody,.wallet-overview .wallet-overview-table tr{display:block;width:100%}
 .wallet-overview .wallet-overview-table tr{padding:10px;border-bottom:1px solid var(--border)}
 .wallet-overview .wallet-overview-table th,.wallet-overview .wallet-overview-table td{display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;padding:4px 0;text-align:right;min-width:0;overflow-wrap:anywhere}
 .wallet-overview .wallet-overview-table th{flex-wrap:wrap;text-align:left}
 .wallet-overview .wallet-overview-table td::before{content:attr(data-label);text-align:left;font-size:12px;color:var(--muted)}
 .wallet-overview .wallet-table-scroll{max-height:none;overflow:visible}
 .group-session-content .team-ledger-row{flex-wrap:wrap}
}

.app-shell[data-page=finance] :is(.manager-collection,.member-workspace-content) :is(button,select,summary,input:not([type=hidden]):not([type=checkbox])),
.wallet-overview .wallet-overview-table :is(.text-button,.small-button){min-height:44px;min-width:44px}

/* Compact finance layouts. Scoped selectors also beat later layout-spacing rules. */
.finance-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.group-cashbook .cashbook-table td.cashbook-mobile-meta{display:none}
.group-cashbook .cashbook-table td.cashbook-amount{text-align:right;white-space:nowrap}
:is(.manager-collection,.group-finance,.wallet-ledger,.finance-operations,.portal-ledger) .group-you,
:is(.manager-collection,.group-finance,.wallet-ledger,.finance-operations,.portal-ledger) .avatar.small{font-size:12px}
.finance-advanced-link .finance-adjustments-button{width:100%;min-height:64px;justify-content:flex-start;gap:12px;padding:12px 16px;border:1px solid #bdceae;background:#f5f8ef;text-align:left;white-space:normal;color:#244e35}
.finance-adjustments-button>svg{flex-shrink:0}
.finance-adjustments-button>span{min-width:0;display:grid;gap:3px}
.finance-adjustments-button strong{font-size:14px;line-height:20px}
.finance-advanced-link .finance-adjustments-button small{display:block;margin:0;font-size:12px;line-height:18px;color:#586950}
.manager-collection .debt-disclosure-controls{display:flex;gap:8px;flex-wrap:wrap;padding:0 var(--panel-inset,20px) 12px}
.manager-collection .manager-debt-list{gap:10px}
.manager-collection .manager-debt-member-heading{display:flex;flex-wrap:nowrap;align-items:center;padding:10px 12px;gap:10px;min-height:64px;list-style:none;cursor:pointer}
.manager-debt-member-heading::-webkit-details-marker{display:none}
.manager-debt-member-heading::before{content:'›';font-size:22px;line-height:22px;flex:0 0 12px;text-align:center}
.manager-debt-member[open]>.manager-debt-member-heading::before{transform:rotate(90deg)}
.manager-collection .manager-debt-member-heading>.person-cell{flex:1;min-width:0}
.manager-collection .manager-debt-member-heading>.person-cell>div{min-width:0}
.manager-collection .manager-debt-member-heading strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:20px}
.manager-collection .manager-debt-member-heading small{margin:0;font-size:12px;line-height:18px}
.manager-collection .manager-debt-member-heading>b{font-size:14px;line-height:22px;white-space:nowrap}
.manager-collection .manager-debt-member-heading .badge{margin-left:6px}
.manager-collection .manager-debt-item{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(112px,.9fr) max-content minmax(130px,1fr) minmax(160px,1.4fr);align-items:center;gap:10px;padding:8px 12px;min-height:64px;font-size:13px;line-height:22px}
.manager-collection .manager-debt-item>div{min-width:0}
.manager-collection .debt-session-title strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:22px}
.manager-collection .manager-debt-item small{font-size:12px;line-height:18px;margin:0}
.manager-collection .debt-item-totals small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.manager-collection .debt-item-remaining{white-space:nowrap;font-size:14px;line-height:22px;text-align:right}
.manager-collection .manager-debt-item .manager-payment-deadline{margin:0;gap:4px;min-width:0;flex-wrap:nowrap;font-size:12px;line-height:18px}
.manager-debt-item .manager-payment-deadline>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.manager-debt-item .manager-payment-deadline>.text-button{flex-shrink:0;padding:6px;font-size:12px;min-height:44px}
.manager-collection .manager-debt-item .manager-debt-item-action{display:flex;align-items:center;flex-wrap:wrap;gap:8px;width:auto;min-width:0;max-width:100%;overflow:visible;text-align:left;padding:2px}
.manager-collection .manager-debt-item-action :is(.button,.text-button){flex-shrink:0;min-height:44px;white-space:normal;max-width:100%;overflow-wrap:anywhere;margin:0;font-size:12px;line-height:18px;padding:6px 10px}
.manager-collection .manager-debt-item-action .payment-reminder-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex-shrink:1;min-width:0;max-width:100%}
.manager-collection .manager-debt-item-action:has([role=status]),.manager-collection .manager-debt-item-action .payment-reminder-actions:has([role=status]){flex-wrap:wrap;flex-shrink:1;overflow:visible}
.manager-collection .manager-debt-item-action [role=status]{flex-basis:100%;white-space:normal}
.manager-collection .manager-debt-item .manager-payment-deadline:has(form){grid-column:1/-1;flex-wrap:wrap}
.manager-collection .manager-debt-member-heading:focus-visible{outline:3px solid #418b73;outline-offset:-3px}
@media(max-width:760px){
 .finance-period .finance-period-modes{display:flex;flex-wrap:nowrap;overflow-x:auto;width:100%;min-width:0;gap:4px;padding:3px;scroll-padding:3px}
 .finance-period .finance-period-modes button{flex:0 0 auto;white-space:nowrap;min-height:44px;font-size:12px;line-height:18px;padding:8px 12px}
 .group-cashbook .cashbook-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:10px}
 .group-cashbook .cashbook-filters>label{min-width:0;gap:4px;font-size:12px;line-height:18px}
 .group-cashbook .cashbook-filters>.cashbook-search,.group-cashbook .cashbook-filters>.button{grid-column:1/-1}
 .group-cashbook .cashbook-filters :is(input,select){min-width:0;max-width:100%;min-height:44px}
 .group-cashbook .cashbook-table{display:block;white-space:normal}
 .group-cashbook .cashbook-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .group-cashbook .cashbook-table tbody{display:block;padding:0}
 .group-cashbook .cashbook-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) max-content;grid-template-rows:22px 20px;align-content:center;column-gap:10px;row-gap:4px;min-height:72px;padding:12px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:white}
 .group-cashbook .cashbook-table tbody tr.is-you{background:#f0f7e9}
 .group-cashbook .cashbook-table tbody tr:last-child{border-bottom:0}
 .group-cashbook .cashbook-table td{display:block;padding:0;border:0;margin:0;min-width:0;max-width:none;font-size:13px;line-height:22px;text-align:left}
 .group-cashbook .cashbook-table td::before{display:none;content:none}
 .group-cashbook .cashbook-table td.cashbook-date,.group-cashbook .cashbook-table td.cashbook-person{display:none}
 .group-cashbook .cashbook-table .cashbook-content{grid-row:1;grid-column:1}
 .group-cashbook .cashbook-table .cashbook-content strong,.group-cashbook .cashbook-table .cashbook-content small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650;line-height:22px;margin:0;color:inherit}
 .group-cashbook .cashbook-table .cashbook-content small{display:none}
 .group-cashbook .cashbook-table td.cashbook-amount{grid-column:2;grid-row:1;white-space:nowrap;text-align:right;font-size:14px;line-height:22px}
 .group-cashbook .cashbook-table td.cashbook-mobile-meta{display:flex;align-items:center;gap:6px;grid-column:1/-1;grid-row:2;min-width:0;white-space:nowrap;text-align:left;font-size:12px;line-height:20px;color:#657064}
 .cashbook-mobile-meta>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .group-cashbook .cashbook-table .cashbook-mobile-meta .badge{flex-shrink:0;margin:0;padding:0 6px;font-size:12px;line-height:20px}
 .manager-collection .manager-debt-item{grid-template-columns:minmax(0,1fr) minmax(112px,.85fr);grid-template-areas:'identity remaining' 'totals deadline' 'actions actions';gap:4px 8px;padding:8px 10px;min-height:0}
 .manager-collection .debt-session-title{grid-area:identity;display:flex;align-items:center;gap:5px;min-width:0}
 .manager-collection .debt-session-title strong{min-width:0}
 .manager-collection .debt-session-title small{flex-shrink:0}
 .manager-collection .debt-item-totals{grid-area:totals}
 .manager-collection .debt-item-remaining{grid-area:remaining}
 .manager-collection .manager-debt-item .manager-payment-deadline{grid-area:deadline;justify-content:flex-end;min-height:44px}
 .manager-collection .manager-debt-item .manager-debt-item-action{grid-area:actions;width:100%}
 .manager-collection .manager-debt-item .manager-payment-deadline:has(form){grid-area:auto;grid-column:1/-1}
 .manager-collection .manager-debt-item:has(.manager-deadline-form) .manager-debt-item-action{grid-area:auto;grid-column:1/-1}
}

/* Finance round 3: dense mobile wallets and a shorter path to the ledger. */
.wallet-overview .wallet-mobile-debt,.wallet-overview .wallet-mobile-label,
.wallet-overview .wallet-mobile-activity,.wallet-ledger .wallet-event-context{display:none}
.wallet-member .text-button>span:first-child{min-width:0}
.member-request-history .member-request-compact{padding:0}
.member-request-compact>.member-request-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:12px;list-style:none;min-height:72px}
.member-request-summary::-webkit-details-marker{display:none}
.member-request-summary>strong{font-size:13px;line-height:22px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.member-request-summary>.badge{align-self:start;font-size:12px;white-space:nowrap}
.member-request-summary>small{grid-column:1/-1;font-size:12px;line-height:20px}
.member-request-summary>small::after{content:' · Xem chi tiết ▾'}
.member-request-compact[open]>.member-request-summary>small::after{content:' · Thu gọn ▴'}
.member-request-compact>.member-request-detail{padding:12px;border-top:1px solid var(--border)}
.member-request-summary:focus-visible{outline:3px solid #418b73;outline-offset:-3px;border-radius:10px}
@media(max-width:760px){
 .wallet-overview .wallet-overview-table{display:block;white-space:normal;table-layout:auto}
 .wallet-overview .wallet-overview-table thead{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .wallet-overview .wallet-overview-table tbody{display:block;width:100%}
 .wallet-overview .wallet-overview-table caption{display:block;width:100%;font-size:12px;line-height:18px}
 .wallet-overview .wallet-overview-table .member-wallet-row{display:grid;grid-template-columns:minmax(0,1fr) max-content;grid-template-rows:22px 44px;grid-auto-rows:18px;column-gap:8px;align-content:center;min-height:76px;padding:0 10px;border-bottom:1px solid var(--border)}
 .wallet-overview .wallet-overview-table :is(th,td){display:block;min-width:0;padding:0;border:0;margin:0;font-size:13px;line-height:22px;text-align:left;overflow-wrap:normal}
 .wallet-overview .wallet-overview-table td::before{display:none;content:none}
 .wallet-overview .wallet-overview-table .wallet-desktop-only{display:none}
 .wallet-overview .wallet-overview-table .wallet-member{grid-column:1;grid-row:1/3;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0}
 .wallet-overview .wallet-member>.text-button{display:flex;align-items:flex-start;justify-content:flex-start;min-height:44px;width:100%;gap:4px;padding:0;margin:0;font-size:13px;line-height:22px;white-space:nowrap}
 .wallet-member>.text-button>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .wallet-overview .wallet-member .group-you{flex-shrink:0;margin:0;padding:0 4px;font-size:12px;line-height:20px}
 .wallet-overview .wallet-mobile-debt{display:block;font-size:12px;line-height:22px;font-weight:400;white-space:nowrap}
 .wallet-overview .wallet-overview-table .wallet-current{grid-column:2;grid-row:1;text-align:right;white-space:nowrap}
 .wallet-overview .wallet-mobile-label{display:inline;font-size:12px;font-weight:400}
 .wallet-overview .wallet-overview-table .wallet-member-action{grid-column:2;grid-row:2;display:flex;align-items:center;justify-content:flex-end;max-width:140px;text-align:right;font-size:12px;line-height:18px}
 .wallet-overview .wallet-member-action>.button{min-height:44px;min-width:44px;font-size:12px;line-height:18px;padding:6px 10px;margin:0}
 .wallet-overview .wallet-overview-table .wallet-mobile-activity{display:block;grid-column:1/-1;font-size:12px;line-height:18px;color:var(--muted);min-width:0}
 .wallet-mobile-activity>span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .wallet-overview .wallet-table-scroll{max-height:none;overflow:visible}
 .wallet-overview>.compact-filter-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:10px;gap:8px}
 .wallet-overview>.compact-filter-bar>label:first-child,.wallet-overview>.compact-filter-bar>.button{grid-column:1/-1}
 .wallet-overview>.compact-filter-bar>label{min-width:0;font-size:12px}
 .wallet-overview>.compact-filter-bar :is(input,select){width:100%;min-width:0;min-height:44px}
 .app-shell:is([data-page=finance],[data-page=wallet]) .group-context{padding:8px 10px;margin-bottom:10px;gap:8px}
 .app-shell:is([data-page=finance],[data-page=wallet]) .group-context-actions{display:grid;grid-template-columns:minmax(0,1fr) 44px auto;align-items:end;gap:6px 8px;width:100%}
 .app-shell:is([data-page=finance],[data-page=wallet]) .group-context-actions>label{grid-column:1;grid-row:1;width:100%;min-width:0;gap:2px;font-size:12px;line-height:18px}
 .app-shell:is([data-page=finance],[data-page=wallet]) .group-context-actions>.group-refresh{grid-column:2;grid-row:1;width:44px;height:44px;padding:0;margin:0;min-width:44px;justify-content:center}
 .app-shell:is([data-page=finance],[data-page=wallet]) .group-refresh>span{display:none}
 .app-shell:is([data-page=finance],[data-page=wallet]) .group-context-actions>a.button{grid-column:3;grid-row:1;min-height:44px;padding:6px 10px;margin:0;font-size:12px}
 .app-shell:is([data-page=finance],[data-page=wallet]) .group-picker-trigger{min-height:44px;height:44px;padding:6px 10px;font-size:13px}
 .app-shell:is([data-page=finance],[data-page=wallet]) .page-heading{margin-bottom:10px}
 .app-shell:is([data-page=finance],[data-page=wallet]) .page-heading h1{font-size:23px;line-height:30px}
 .finance-quick-actions{gap:8px;margin:0 0 10px}
 .manager-collection>.finance-toolbar{padding:6px 10px}
 .manager-collection .finance-toolbar>.tabs,.member-workspace-content>.member-finance-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:4px;overflow:visible;white-space:normal}
 .manager-collection .finance-toolbar>.tabs>button,.member-workspace-content>.member-finance-tabs>button{min-width:0;min-height:44px;padding:4px;font-size:13px;line-height:18px;white-space:normal;overflow-wrap:normal}
 .manager-collection>.table-note{display:none}
 .manager-collection>.finance-period,.group-finance .group-cashbook>.finance-period{padding:6px;gap:4px;margin-block:6px}
 .panel.manager-collection>.group-cashbook{padding-top:2px;gap:8px}
 .group-finance .group-cashbook{gap:8px}
 .group-cashbook>.cashbook-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
 .group-cashbook>.cashbook-summary>div{padding:6px 10px;gap:2px;min-height:0}
 .group-cashbook>.cashbook-summary>div:first-child{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:8px}
 .group-cashbook>.cashbook-summary span{font-size:12px;line-height:18px}
 .group-cashbook>.cashbook-summary strong{font-size:18px;line-height:24px;white-space:nowrap}
 .group-cashbook>.cashbook-summary small{display:none}
 .member-workspace-content>.member-top-up-bar{padding:8px 10px;gap:8px;margin-bottom:10px;flex-wrap:nowrap}
 .member-workspace-content>.member-top-up-bar>div{min-width:0}
 .member-workspace-content>.member-top-up-bar strong{font-size:13px;line-height:20px}
 .member-workspace-content>.member-top-up-bar small{font-size:12px;line-height:18px;margin-top:2px}
 .member-workspace-content>.member-top-up-bar>.button{flex-shrink:0;padding:6px 10px;font-size:12px;min-height:44px}
 .wallet-ledger .wallet-event-row{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:8px;padding:12px 0;min-height:72px;font-size:13px;line-height:22px}
 .wallet-event-row>div>strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .wallet-ledger .wallet-event-row>div>:is(p,small){display:none}
 .wallet-ledger .wallet-event-context{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:20px;color:var(--muted)}
 .wallet-ledger .wallet-event-row>b{text-align:right;white-space:nowrap;font-size:13px;line-height:22px}
 .wallet-ledger .wallet-event-row>b>small{font-size:12px;line-height:20px;margin:0}
 .portal-ledger .member-dues>.member-due-row{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:8px;padding:10px 0;font-size:13px;line-height:22px}
 .portal-ledger .member-dues .member-due-row strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .portal-ledger .member-dues .member-due-row small{font-size:12px;line-height:18px;margin:0}
 .portal-ledger .member-dues .member-due-row>b{white-space:nowrap;font-size:13px}
 .portal-ledger .member-request-compact{margin-top:6px}
 .portal-ledger .wallet-period-summary{grid-template-columns:1fr;padding:8px;gap:6px}
 .portal-ledger .wallet-period-summary>div{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;padding:6px 8px;gap:2px 8px}
 .portal-ledger .wallet-period-summary b{font-size:14px;line-height:20px;margin:0;white-space:nowrap}
 .portal-ledger .wallet-period-summary small{grid-column:1/-1;font-size:12px;line-height:18px}
}

/* Debt filters and the session heading use the full mobile content width. */
.manager-collection .debt-item-heading{display:contents}
@media(min-width:761px){
 .manager-collection .debt-item-heading>.debt-item-remaining{grid-column:3;grid-row:1}
 .manager-collection .manager-debt-item>.debt-item-totals{grid-column:2;grid-row:1}
}
@media(max-width:760px){
 .manager-collection>.manager-debt-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:8px 10px;text-align:left;padding-block:8px}
 .manager-collection>.manager-debt-filters>label{display:grid;align-items:start;justify-content:stretch;gap:4px;width:100%;min-width:0;font-size:12px;line-height:18px;text-align:left}
 .manager-collection>.manager-debt-filters select{width:100%;min-width:0;min-height:44px}
 .manager-collection>.manager-debt-filters>span{grid-column:1/-1;margin:0;text-align:left}
 .manager-collection>.inline-search{width:calc(100% - 2 * var(--panel-inset,14px));max-width:none;margin:0 var(--panel-inset,14px) 8px;min-height:44px}
 .manager-collection>.inline-search input{width:100%;min-width:0;min-height:44px}
 .manager-collection .manager-debt-item{grid-template-areas:'heading heading' 'totals deadline' 'actions actions'}
 .manager-collection .debt-item-heading{grid-area:heading;display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:8px;align-items:start}
 .manager-collection .debt-item-heading>.debt-session-title{grid-area:auto;display:block;min-width:0}
 .manager-collection .debt-item-heading>.debt-item-remaining{grid-area:auto;white-space:nowrap}
}

/* Shared debt controls follow panel width, including the space taken by the sidebar. */
.manager-collection,.group-finance{container-type:inline-size;container-name:finance-panel}
.manager-collection>.finance-debt-controls{margin:12px var(--panel-inset,20px)}
.finance-debt-controls .debt-controls{display:grid;grid-template-columns:auto minmax(220px,1fr) minmax(160px,200px) minmax(160px,200px);align-items:end;gap:12px}
.finance-debt-controls .debt-controls>label{display:grid;gap:4px;min-width:0;margin:0;font-size:12px;line-height:18px;color:var(--muted);text-align:left}
.finance-debt-controls :is(input,select){width:100%;min-width:0;min-height:44px;height:44px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:white;color:var(--text);font:inherit;font-size:13px}
.finance-debt-controls .debt-mode-switch{display:flex;flex-wrap:nowrap;align-items:center;gap:4px;padding:4px;margin:0;width:max-content;max-width:100%;min-height:44px;box-sizing:border-box}
.finance-debt-controls .debt-mode-switch>button{min-height:44px;padding:8px 10px;white-space:nowrap;font-size:13px;line-height:18px}
.finance-debt-controls .debt-results-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;font-size:13px;line-height:20px;min-height:44px}
.debt-results-summary>span{min-width:0}
.debt-results-summary b{white-space:nowrap}
.finance-debt-controls .debt-disclosure-actions{display:flex;flex-shrink:0;gap:12px;align-items:center}
.finance-debt-controls .debt-disclosure-actions>.text-button{min-height:44px;margin:0;padding:6px 0;font-size:12px;line-height:18px;white-space:nowrap}
@media(min-width:761px){
 .manager-collection .manager-debt-item{grid-template-columns:minmax(0,1fr) minmax(112px,.8fr) max-content minmax(130px,.9fr)}
 .manager-collection .manager-debt-item .manager-debt-item-action{grid-column:1/-1;justify-content:flex-end;width:100%}
 .manager-collection .manager-debt-item-action .payment-reminder-actions{justify-content:flex-end}
 .group-cashbook .cashbook-table{table-layout:fixed;white-space:normal;width:100%}
 .group-cashbook .cashbook-table th:first-child{width:112px}
 .group-cashbook .cashbook-table th:nth-child(3){width:24%}
 .group-cashbook .cashbook-table th:nth-child(4){width:144px}
 .group-cashbook .cashbook-table :is(th,td){overflow-wrap:anywhere}
 .wallet-overview .wallet-overview-table{table-layout:fixed;white-space:normal;width:100%}
 .wallet-overview .wallet-overview-table :is(th,td){min-width:0;padding:8px;overflow-wrap:anywhere;white-space:normal}
 .wallet-overview .wallet-overview-table th:first-child{min-width:0;width:22%}
 .wallet-overview .wallet-overview-table th:last-child{width:112px}
 .wallet-overview .wallet-member>.text-button{max-width:100%;white-space:normal;flex-wrap:wrap;justify-content:flex-start}
 .wallet-overview .wallet-member>.text-button>span:first-child{overflow-wrap:anywhere}
 .wallet-overview>.compact-filter-bar,.group-cashbook>.cashbook-filters{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(2,minmax(0,1fr));gap:12px;align-items:end}
 .wallet-overview>.compact-filter-bar>label,.group-cashbook>.cashbook-filters>label{font-size:12px;line-height:18px;gap:4px}
 .wallet-overview>.compact-filter-bar>.button,.group-cashbook>.cashbook-filters>.button{grid-column:1/-1;justify-self:start}
}
@container finance-panel (max-width:1000px){
 .finance-debt-controls .debt-controls{grid-template-columns:minmax(0,1fr) minmax(220px,1fr)}
 .finance-debt-controls .debt-mode-switch{width:100%}
 .finance-debt-controls .debt-mode-switch>button{flex:1}
}
@container finance-panel (max-width:550px){
 .finance-debt-controls .debt-controls{grid-template-columns:repeat(2,minmax(0,1fr))}
 .finance-debt-controls .debt-mode-switch,.finance-debt-controls .debt-control-search{grid-column:1/-1}
 .wallet-overview>.compact-filter-bar,.group-cashbook>.cashbook-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
 .wallet-overview>.compact-filter-bar>label:first-child,.group-cashbook>.cashbook-filters>.cashbook-search{grid-column:1/-1}
}
@media(min-width:761px){
 @container finance-panel (min-width:1400px){
  .manager-collection .manager-debt-item{grid-template-columns:minmax(0,1fr) 150px max-content 160px max-content}
  .manager-collection .manager-debt-item .manager-debt-item-action{grid-column:5;width:auto}
 }
}
@media(max-width:760px){
 .manager-collection>.finance-debt-controls{margin:12px var(--panel-inset,14px)}
 .finance-debt-controls .debt-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}
 .finance-debt-controls .debt-mode-switch,.finance-debt-controls .debt-control-search{grid-column:1/-1}
 .finance-debt-controls .debt-mode-switch{width:100%}
 .finance-debt-controls .debt-mode-switch>button{flex:1}
 .finance-debt-controls .debt-results-summary{flex-wrap:wrap;gap:4px 12px}
 .finance-debt-controls .debt-control-search{gap:0}
 .finance-debt-controls .debt-control-search>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .finance-debt-controls .debt-control-search input{font-size:16px}
}

/* Task-based adjustments and payment feedback (finance only). */
.finance-operations .finance-task-list{display:grid;gap:10px;margin-top:12px}
.finance-operations .finance-task-card{display:flex;align-items:center;gap:14px;width:100%;min-height:76px;padding:14px 16px;border:1px solid var(--border,#dae3dc);border-radius:12px;background:#f7f9f3;text-align:left;color:var(--text,#284231);font:inherit;cursor:pointer}
.finance-task-card>svg{flex-shrink:0;color:#376746}
.finance-task-card>span{min-width:0;overflow-wrap:anywhere}
.finance-task-card strong{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:14px;line-height:22px}
.finance-task-card small{display:block;margin-top:4px;font-size:12px;line-height:19px;color:#60715a}
.finance-task-card .badge{font-size:12px}
.finance-operations .finance-task-back{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-bottom:8px}
.finance-task-card:focus-visible,.finance-pending-notice a:focus-visible{outline:3px solid #418b73;outline-offset:3px}
.finance-pending-notice{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;border:1px solid #c8ddba;background:#f1f8e9;border-radius:12px;padding:6px 14px;margin:0 0 14px;font-size:13px;line-height:20px}
.finance-pending-notice .text-button{min-height:44px;white-space:nowrap}
.member-top-up-bar>div{min-width:0;flex:1}
.member-top-up-bar>.button{flex-shrink:0}
.member-top-up-bar .finance-member-payment-status small{font-size:12px;line-height:19px;overflow-wrap:anywhere}
.finance-member-payment-status:empty{display:none}
.finance-member-payment-status .text-button,.member-request-status .text-button{min-height:44px;font-size:12px}
.member-request-summary .member-request-rejection{grid-column:1/-1;white-space:normal;overflow-wrap:anywhere;color:#9c4f1b}
.finance-disclosure-body{min-width:0}
.finance-skeleton{display:grid;gap:12px;padding:16px 0;min-width:0}
.finance-skeleton>div{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:60px;border-radius:10px;background:#f5f7f2;padding:14px}
.finance-skeleton>div>span{display:block;width:52%;height:14px;border-radius:6px;background:#e4eadf}
.finance-skeleton>div>span:last-child{width:24%}
@media(max-width:760px){
 .finance-operations .finance-task-card{padding:12px;gap:10px}
 .member-top-up-bar{flex-wrap:wrap}
 .member-top-up-bar>div{flex-basis:180px}
}
@keyframes finance-arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:no-preference){
 .finance-pending-notice,.finance-skeleton{animation:finance-arrive 200ms cubic-bezier(.16,1,.3,1) both}
 :is(.manager-collection,.group-finance,.finance-operations,.portal-ledger,.member-top-up-bar,.finance-quick-actions,.finance-advanced-link) :is(button,.text-button,summary){transition:transform 200ms cubic-bezier(.16,1,.3,1),opacity 200ms cubic-bezier(.16,1,.3,1)}
 .manager-collection :is(.manager-debt-item,.member-wallet-row),.group-cashbook tbody tr{transition:opacity 150ms ease-in}
 .manager-collection :is(.manager-debt-item,.member-wallet-row):hover,.group-cashbook tbody tr:hover{background-color:#f7faf3}
 .finance-operations .finance-task-card:hover{transform:translateY(-2px)}
 :is(.manager-collection,.group-finance,.finance-operations,.portal-ledger,.member-top-up-bar,.finance-quick-actions,.finance-advanced-link) :is(button,.text-button):active{transform:scale(.98)}
}
@media(prefers-reduced-motion:reduce){
 :is(.manager-collection,.group-finance,.finance-operations,.portal-ledger,.member-top-up-bar,.finance-quick-actions,.finance-advanced-link,.finance-pending-notice,.finance-skeleton),
 :is(.manager-collection,.group-finance,.finance-operations,.portal-ledger,.member-top-up-bar,.finance-quick-actions,.finance-advanced-link,.finance-pending-notice,.finance-skeleton) *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 :is(.manager-collection,.group-finance,.finance-operations,.portal-ledger,.member-top-up-bar,.finance-quick-actions,.finance-advanced-link) :is(button,.text-button):active{transform:none!important}
}

.member-request-compact>.member-request-summary>.member-request-rejection::after{content:none}

/* Financial health is deliberately separate from confirmed balances. */
.member-workspace-content>.member-top-up-bar.is-low,.member-portal>.member-top-up-bar.is-low{background:#fff7e9;border-color:#e5c28d}
.member-top-up-bar.is-low>div>small{color:#87521e}
.member-group-fund{display:grid;gap:4px;padding:12px 14px;margin:12px 0;border:1px solid #dce6d1;border-radius:10px;background:#f6f9f1;font-size:13px;line-height:21px}
.member-group-fund.is-low{background:#fffaf0;border-color:#ead8b5}
.member-group-fund small,.members-panel .member-low-fund small{display:block;font-size:12px;line-height:19px;color:#87521e}
.members-panel .member-low-fund{display:block;margin-top:5px}
.members-panel .member-low-fund .badge{font-size:12px}
.members-panel .toolbar-right{flex-wrap:wrap;gap:10px}
.members-panel .toolbar-right select{min-width:0;min-height:44px;max-width:100%}
@media(max-width:760px){
 .group-cashbook .cashbook-table .cashbook-content strong{position:static;width:100%;height:auto;clip-path:none;min-width:0}
 .members-panel .toolbar-right{width:100%}
 .members-panel .toolbar-right select{flex:1 1 140px}
}

.member-top-up-bar>div>small,.member-group-fund small{overflow-wrap:anywhere}

/* Round 8: shared member ledger. Scoped after the older stacked ledger rules. */
.wallet-ledger.wallet-ledger-compact{margin:0;min-width:0}
.wallet-ledger-compact .wallet-ledger-scroll{padding:16px 24px;min-width:0}
.portal-ledger>.wallet-ledger-compact .wallet-ledger-scroll{padding:0}
.wallet-ledger-compact .wallet-summary-strip{display:grid;grid-template-columns:minmax(160px,1fr) minmax(0,2fr);align-items:center;gap:16px;padding:16px;background:#f2f7ed;border:1px solid #dfe8d6;border-radius:12px}
.wallet-summary-balance>span{display:block;font-size:12px;line-height:20px;color:#52654c}
.wallet-summary-balance>strong{display:block;font-size:28px;line-height:36px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;color:var(--forest)}
.wallet-summary-numbers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}
.wallet-summary-numbers>div{min-width:0}.wallet-summary-numbers dt{font-size:12px;line-height:20px;color:var(--muted)}
.wallet-summary-numbers dd{margin:0;font-size:14px;line-height:24px;font-weight:650;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.wallet-summary-numbers .wallet-summary-warning{color:#a35016}
.wallet-ledger-compact .wallet-calculation{margin:8px 0;border:0}
.wallet-ledger-compact .wallet-calculation>summary{min-height:44px;padding:12px 0;font-size:12px;line-height:20px;cursor:pointer;color:var(--forest);list-style-position:inside}
.wallet-ledger-compact .wallet-calculation p,.wallet-session-row .finance-disclosure-body>p{font-size:12px;line-height:20px;margin:8px 0;color:var(--muted);overflow-wrap:anywhere}
.wallet-ledger-compact .wallet-detail-grid{margin:0;display:grid;gap:8px;font-size:12px;line-height:20px}
.wallet-detail-grid>div{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:12px}
.wallet-detail-grid dt{min-width:0;color:var(--muted)}.wallet-detail-grid dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.wallet-ledger-compact .finance-period{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;padding:0 0 8px;margin:0;border:0;border-radius:0;background:none;overflow-x:auto;max-width:100%}
.wallet-ledger-compact .finance-period .finance-period-modes{display:flex;flex-wrap:nowrap;flex:0 0 auto;width:auto;overflow:visible;gap:0;padding:0;background:#f1f5ed;border-radius:8px}
.wallet-ledger-compact .finance-period-modes button{white-space:nowrap;padding:8px;min-height:44px;font-size:12px}
.wallet-ledger-compact .finance-period>:not(.finance-period-modes){flex:0 0 auto;width:auto}
.wallet-ledger-compact .finance-period .picker-trigger{min-height:44px;font-size:12px;padding:8px}
.wallet-ledger-compact .finance-date-range{display:flex;flex-wrap:nowrap}
.wallet-ledger-compact h3{font-size:16px;line-height:24px;margin:16px 0 8px}
.wallet-ledger-compact .wallet-session-row{margin:0;border:0;border-bottom:1px solid var(--border)}
.wallet-session-row>summary,.wallet-ledger-compact .wallet-transaction-row{display:grid;grid-template-columns:minmax(0,1fr) max-content;column-gap:12px;row-gap:4px;padding:12px 0;min-height:72px;font-size:14px;line-height:22px;list-style:none}
.wallet-session-row>summary{cursor:pointer}.wallet-session-row>summary::-webkit-details-marker{display:none}
.wallet-session-row>summary>strong,.wallet-transaction-row>strong{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wallet-session-row>summary>b,.wallet-transaction-row>b{white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
.wallet-session-row>summary>small{grid-column:1/-1;grid-row:2;padding-right:24px;font-size:12px;line-height:20px;min-width:0;color:var(--muted)}
.wallet-row-chevron{grid-column:2;grid-row:2;justify-self:end;text-align:right;color:var(--forest);line-height:20px}
.wallet-session-row>.finance-disclosure-body{padding:0 0 16px}
.wallet-ledger-compact .wallet-transaction-row{border-bottom:1px solid var(--border)}
.wallet-transaction-row>span{grid-column:1/-1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;line-height:20px;color:var(--muted)}
.wallet-ledger-compact .wallet-empty{font-size:13px;margin:12px 0;color:var(--muted)}
.wallet-pending-row{display:grid;grid-template-columns:minmax(0,1fr) auto;padding:12px 0;gap:8px;font-size:13px;border-bottom:1px solid var(--border)}
.wallet-pending-row>small{grid-column:1;grid-row:2}.wallet-pending-row>.badge{grid-column:2;grid-row:1/3;align-self:center}
.wallet-ledger-compact .list-pagination{padding:12px 0;margin:0;font-size:12px}
.wallet-ledger-compact .wallet-ledger-footer{position:sticky;bottom:0;z-index:1;display:flex;justify-content:flex-end;padding:12px 24px;background:white;border-top:1px solid var(--border)}
.wallet-ledger-footer>.button{min-height:44px;min-width:120px}
.modal:has(.wallet-ledger-compact){max-width:min(760px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:hidden}
.modal:has(.wallet-ledger-compact)>.modal-shell{display:flex;flex-direction:column;max-height:calc(100dvh - 34px)}
.modal:has(.wallet-ledger-compact) .modal-heading{flex-shrink:0;padding:16px 24px}
.modal:has(.wallet-ledger-compact) .wallet-ledger-compact{display:flex;flex-direction:column;min-height:0}
.modal:has(.wallet-ledger-compact) .wallet-ledger-scroll{overflow-y:auto;min-height:0;overscroll-behavior:contain}
.modal:has(.wallet-ledger-compact) .wallet-ledger-footer{position:relative;flex-shrink:0}
.finance-refund-guide{padding:12px 16px;background:#f5f8f0;border-radius:8px;margin:12px 0;font-size:13px}
.finance-refund-guide .text-button{min-height:44px;margin-right:12px;white-space:normal;text-align:left}
.finance-cancel-session{padding:16px;border-top:1px solid var(--border)}
.finance-cancel-session>.text-button{min-height:44px;white-space:normal;text-align:left;font-size:13px}
@media(max-width:600px){
 .wallet-ledger-compact .wallet-ledger-scroll{padding:12px 16px}
 .wallet-ledger-compact .wallet-summary-strip{grid-template-columns:1fr;gap:8px;padding:12px}
 .wallet-summary-balance{display:flex;align-items:center;justify-content:space-between;gap:12px}
 .wallet-summary-balance>strong{font-size:24px;line-height:32px}
 .wallet-summary-numbers{border-top:1px solid #dfe8d6;padding-top:8px;gap:8px}
 .wallet-summary-numbers dd{font-size:13px;line-height:20px}
 .wallet-ledger-compact .wallet-ledger-footer{padding:12px 16px}
 .wallet-ledger-footer>.button{width:100%}
 .modal:has(.wallet-ledger-compact) .modal-heading{padding:12px 16px}
 .wallet-session-row>summary,.wallet-ledger-compact .wallet-transaction-row{font-size:13px;gap:4px 8px}
}
@media(prefers-reduced-motion:no-preference){
 .wallet-ledger-compact .wallet-summary-strip{animation:finance-arrive 200ms cubic-bezier(.16,1,.3,1) both}
 .wallet-ledger-compact :is(button,summary){transition:transform 200ms cubic-bezier(.16,1,.3,1),opacity 150ms ease-in}
 .wallet-ledger-compact button:active{transform:scale(.98)}
 .wallet-session-row>summary:hover,.wallet-transaction-row:hover{background:#f7faf3}
}
@media(prefers-reduced-motion:reduce){.wallet-ledger-compact,.wallet-ledger-compact *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.wallet-ledger-compact button:active{transform:none!important}}

/* P0: one net fund figure and a dense, all-time debt summary. */
.wallet-summary-balance>strong.money-out{color:#ad4e28}
.finance-debt-summary{padding:0 16px 12px;min-width:0}
.debt-summary-toolbar{display:flex;align-items:center;gap:12px;padding:8px 0}
.debt-summary-toolbar>label{flex:1;min-width:120px}
.debt-summary-toolbar input{min-height:44px;width:100%;border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:13px}
.debt-summary-toolbar>.text-button{flex-shrink:0;min-height:44px;font-size:12px}
.debt-view-switch{display:flex;flex-wrap:nowrap;flex:0 0 auto}
.debt-view-switch>button{min-height:44px;font-size:13px;padding:8px 12px;white-space:nowrap}
.manager-collection>.debt-view-switch{width:fit-content;margin:8px 20px}
.debt-summary-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:28px;margin:0;font-size:12px}
.debt-summary-heading h3{font-size:13px;line-height:20px;margin:0}.debt-summary-heading b{color:var(--orange);white-space:nowrap}
.debt-summary-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:12px;line-height:20px;white-space:normal}
.debt-summary-table th,.debt-summary-table td{padding:0 6px;border-bottom:1px solid var(--border);text-align:right;height:44px;min-width:0}
.debt-summary-table th:first-child{width:26%;text-align:left}.debt-summary-table th:nth-child(2){width:15%}.debt-summary-table th:nth-child(3){width:16%}.debt-summary-table th:nth-child(4){width:9%}.debt-summary-table th:nth-child(5){width:13%}.debt-summary-table th:last-child{width:144px}
.debt-summary-table.is-guest th:first-child{width:auto}.debt-summary-table.is-guest th:nth-child(2){width:38%}.debt-summary-table.is-guest th:last-child{width:90px}
.debt-summary-table thead button{border:0;background:none;color:inherit;min-height:44px;font-size:12px;padding:0;cursor:pointer;white-space:nowrap}
.debt-summary-table thead th{font-weight:500;background:#f6f8f4}
.debt-summary-row{cursor:pointer}.debt-summary-row:hover{background:#f7faf3}
.debt-summary-name>button{display:flex;flex-direction:column;justify-content:center;align-items:stretch;width:100%;border:0;background:none;padding:0;color:inherit;text-align:left;min-height:44px;font-size:13px;font-weight:600;line-height:18px;cursor:pointer}
.debt-summary-name>button>span:first-child{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.debt-summary-bar{display:block;height:3px;width:100%;max-width:120px;margin-top:3px;background:#f3e8d7;border-radius:3px;overflow:hidden}
.debt-summary-bar>i{display:block;width:100%;height:100%;background:#ca8a45;transform-origin:left}
.debt-summary-name>small{display:none}
.debt-summary-fund,.debt-summary-needed{font-variant-numeric:tabular-nums;white-space:nowrap;color:#a65024}
.debt-summary-fund>span{display:block;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
.debt-summary-actions{white-space:nowrap}.debt-summary-actions>.button,.debt-summary-actions>.text-button{min-height:44px;min-width:44px;padding:6px;font-size:12px;margin:0}
.debt-summary-actions>.text-button{margin-left:4px}
.debt-summary-detail[hidden]{display:none}.debt-summary-detail>td{padding:0;background:#f7faf5;text-align:left;height:auto}
.debt-summary-detail .manager-debt-item{margin:0;padding:12px}
.debt-copy-status{white-space:pre-wrap;font-size:12px;margin:8px 0}
.manager-collection.has-debt-summary>.finance-toolbar{padding:0 16px;gap:12px;display:flex;justify-content:space-between;min-height:44px}
.has-debt-summary>.finance-toolbar>.tabs{flex:1;width:auto;display:flex;flex-wrap:nowrap;margin:0}
.has-debt-summary>.finance-toolbar>.tabs>button{min-height:44px;padding:8px 12px;font-size:13px}
/* Keep the heading and group selector in separate, normal-flow rows. */
.finance-summary-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.finance-summary-actions>.button{min-height:44px;font-size:13px}
.debt-summary-scope{font-size:12px;line-height:20px;color:var(--muted);margin:0 0 4px}
@media(min-width:761px){
 .app-shell[data-page=finance] .main-content:has(.finance-debt-summary){padding-top:16px}
 .app-shell[data-page=finance] .main-content:has(.finance-debt-summary)>.page-heading{min-height:44px;margin-bottom:8px;align-items:center;flex-wrap:wrap}
 .app-shell[data-page=finance] .main-content:has(.finance-debt-summary)>.page-heading>div:first-child{flex:1 1 300px;min-width:0}
 .app-shell[data-page=finance] .main-content:has(.finance-debt-summary)>.page-heading h1{font-size:24px;line-height:32px;overflow-wrap:anywhere}
 .app-shell[data-page=finance] .main-content:has(.finance-debt-summary)>.page-heading p{font-size:13px;line-height:20px;margin-top:4px}
 .app-shell[data-page=finance] .main-content:has(.finance-debt-summary)>.group-context{position:static;margin:0 0 12px;padding:0;border:0;background:none;min-height:44px}
 .app-shell[data-page=finance] .main-content:has(.finance-debt-summary)>.group-context .group-context-actions{width:100%;display:flex;flex-wrap:wrap;gap:8px;align-items:end}
 .app-shell[data-page=finance] .main-content:has(.finance-debt-summary)>.group-context label{font-size:12px;line-height:18px;flex:1 1 220px;min-width:0;gap:4px}
 .app-shell[data-page=finance] .main-content:has(.finance-debt-summary)>.group-context :is(.group-picker-trigger,.button){min-height:44px;font-size:12px;padding:8px;white-space:nowrap}
 .app-shell[data-page=finance] .main-content:has(.finance-debt-summary)>.group-context .group-refresh>span{display:none}
 .manager-collection.has-debt-summary>.finance-toolbar{flex-wrap:wrap;padding-block:8px}
 .has-debt-summary>.finance-toolbar>.tabs{flex:1 1 330px}
 .debt-summary-table:not(.is-guest):not(.has-fund) th:first-child{width:auto}
 .debt-summary-table:not(.is-guest):not(.has-fund) th:nth-child(2){width:20%}
 .debt-summary-table:not(.is-guest):not(.has-fund) th:nth-child(3){width:10%}
 .debt-summary-table:not(.is-guest):not(.has-fund) th:nth-child(4){width:18%}
 .debt-summary-table:not(.is-guest):not(.has-fund) th:last-child{width:144px}
}
@media(max-width:1099px) and (min-width:761px){.debt-summary-table th:first-child{width:23%}.debt-summary-table th:last-child{width:134px}.debt-summary-table .debt-summary-since{font-size:12px}.debt-summary-table th:nth-child(5){width:14%}}
.debt-mobile-since,.debt-mobile-count{display:none}
.debt-summary-person>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
@media(max-width:760px){
 .finance-debt-summary{padding:0 12px 12px}.debt-summary-toolbar{display:grid;grid-template-columns:1fr auto;gap:8px;padding:8px 0}
 .debt-summary-toolbar>label{grid-column:1/-1;grid-row:2}.debt-summary-toolbar>.text-button{font-size:12px}
 .debt-summary-heading{display:block;padding:8px 0}.debt-summary-heading>span{display:block;font-size:12px}
 .debt-summary-table,.debt-summary-table tbody{display:block;width:100%}
 .debt-summary-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .debt-summary-table .debt-summary-row{display:grid;grid-template-columns:minmax(0,1fr) 126px;grid-template-rows:22px 22px;align-content:center;gap:0 8px;min-height:56px;height:56px;border-bottom:1px solid var(--border)}
 .debt-summary-table .debt-summary-row>:is(th,td){height:auto;width:auto;border:0;padding:0;min-width:0}
 .debt-summary-table .debt-summary-name{grid-column:1;grid-row:1/3;position:relative}
 .debt-summary-name>button{justify-content:flex-start;line-height:20px;padding:0 0 22px;min-height:44px}
 .debt-summary-name>button>.debt-summary-bar{position:absolute;left:0;right:0;bottom:0;height:2px;margin:0;max-width:100%}
 .debt-summary-name>button>.debt-summary-person{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;width:100%}
 .debt-summary-person>.debt-mobile-since{display:block;font-size:12px;line-height:20px;font-weight:400;color:var(--muted)}
 .debt-summary-table .debt-summary-row>:is(.debt-summary-fund,.debt-summary-count,.debt-summary-since){display:none}
 .debt-summary-table .debt-summary-needed{grid-column:1;grid-row:2;text-align:left;font-size:12px;line-height:20px;pointer-events:none}
 .debt-summary-needed>.debt-mobile-count{display:inline;font-size:12px;color:var(--muted)}
 .debt-summary-table .debt-summary-actions{position:relative;grid-column:2;grid-row:1/3;display:flex;justify-content:flex-end;align-items:center;gap:4px}
 .debt-summary-actions>.button{width:78px;min-height:44px;padding:4px;font-size:12px;margin:0}
 .debt-summary-actions>.text-button{min-width:44px;min-height:44px;padding:4px;font-size:12px;margin:0}
 .debt-summary-table .debt-summary-detail{display:block}.debt-summary-table .debt-summary-detail[hidden]{display:none}.debt-summary-detail>td{display:block;width:100%}
 .has-debt-summary>.finance-toolbar>.tabs>button{padding:6px;font-size:12px;white-space:normal}
 .manager-collection.has-debt-summary>.finance-toolbar{padding:0 12px;gap:8px}
}

/* The summary has two 44px toolbars; keep native table semantics on phones. */
.has-debt-summary>.finance-toolbar>.tabs,.debt-view-switch{padding:0}
.debt-summary-toolbar>.debt-summary-mobile-sort{display:none}
.finance-row-options>summary,.member-payment-options>summary{min-height:44px;display:flex;align-items:center;font-size:12px;color:var(--forest);cursor:pointer;list-style-position:inside}
.finance-row-options>summary::before,.member-payment-options>summary::before{content:'›';margin-right:8px}
.finance-row-options[open]>summary::before,.member-payment-options[open]>summary::before{content:'⌄'}
.finance-row-options .text-button{min-height:44px;white-space:normal;text-align:left}
.member-payment-options{grid-column:1/-1}
.member-payment-options>label{padding-bottom:12px}
.debt-summary-name .group-you{display:inline;margin-left:6px;font-size:12px;font-weight:500}
@media(max-width:760px){
 .debt-summary-toolbar>.debt-summary-mobile-sort{display:block;grid-column:2;grid-row:2;min-width:0}
 .debt-summary-toolbar>label:not(.debt-summary-mobile-sort){grid-column:1;min-width:0}
 .debt-summary-mobile-sort select{width:100%;min-height:44px;max-width:138px;font-size:12px;padding:8px;border:1px solid var(--border);border-radius:8px;background:white}
 .debt-summary-toolbar{grid-template-columns:minmax(0,1fr) auto}
 .debt-summary-table thead{display:none}
 .has-debt-summary>.finance-toolbar>.tabs{gap:2px}
 .has-debt-summary>.finance-toolbar>.tabs>button{flex:1;padding-inline:3px}
}
@media(prefers-reduced-motion:no-preference){.debt-summary-expanded{animation:finance-arrive 200ms cubic-bezier(.16,1,.3,1) both}}
@media(prefers-reduced-motion:reduce){.debt-summary-expanded{animation:none}}

@media(max-width:760px){
 .manager-collection.has-debt-summary>.finance-toolbar{flex-direction:column;align-items:stretch;padding-block:8px}
 .has-debt-summary>.finance-toolbar>.tabs{width:100%;flex:initial}
 .finance-summary-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .finance-summary-actions>.button{white-space:normal;padding:8px;font-size:12px;line-height:18px}
}

/* P1-4: one identity, one attendance cell, one fund and one actions cell. */
.members-panel .members-compact-table{table-layout:fixed;width:100%;min-width:0}
.members-compact-table th:first-child{width:30%}.members-compact-table th:last-child{width:156px}
.members-panel .members-compact-table :is(th,td){padding:8px 12px;font-size:13px;vertical-align:middle}
.members-compact-table .person-cell{min-width:0}.members-compact-table .person-cell>div{min-width:0}
.members-compact-table .person-cell strong{display:flex;align-items:center;gap:4px;line-height:20px;font-size:14px;overflow-wrap:anywhere}
.members-compact-table .person-cell strong .badge{flex-shrink:0;font-size:12px;margin:0}
.members-compact-table .member-profile-line{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;line-height:20px;margin:0}
.members-compact-table .member-participation>span{display:block;line-height:20px}
.members-compact-table .member-participation>small{display:block;font-size:12px;line-height:20px;margin:0}
.members-compact-table .member-fund>b{white-space:nowrap;font-size:13px;line-height:20px}
.members-compact-table .member-low-fund{margin:0;font-size:12px;line-height:20px}
.members-compact-table .member-action-controls{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:wrap}
.members-compact-table .member-action-controls>button,.members-compact-table .member-more>summary{min-height:44px;min-width:44px;padding:10px 6px;margin:0;font-size:12px;line-height:24px;cursor:pointer;color:var(--forest)}
.members-compact-table .member-more>summary{list-style-position:inside}
.members-compact-table .member-more-body{padding:12px;background:#f5f8f1;border:1px solid var(--line);border-radius:8px;font-size:12px;line-height:20px;overflow-wrap:anywhere}
.members-compact-table .member-more-body>p{margin:0 0 8px}.members-compact-table .member-more-body .button,.members-compact-table .member-more-body .text-button{min-height:44px;margin:4px 0;font-size:12px}
@media(max-width:760px){
 .members-panel .table-wrap{max-height:none;overflow:visible}
 .members-panel .members-compact-table,.members-panel .members-compact-table tbody{display:block;width:100%;padding:0;gap:0}
 .members-panel .members-compact-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .members-panel .members-compact-table tbody>tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:24px minmax(44px,auto);gap:0 8px;padding:6px 12px;margin:0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}
 .members-panel .members-compact-table tbody>tr>td{display:block;padding:0;border:0;min-width:0;max-width:none;white-space:normal;text-align:left;font-size:12px}
 .members-panel .members-compact-table tbody>tr>td:before{display:none}
 .members-compact-table .member-identity{grid-area:1/1/2/2}
 .members-compact-table .person-cell>.avatar,.members-compact-table .member-profile-line{display:none}
 .members-compact-table .person-cell strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:24px;font-size:13px}
 .members-compact-table .person-cell strong .badge{margin-left:4px}
 .members-panel .members-compact-table .member-fund{grid-area:1/2/2/3;text-align:right;align-self:center}
 .members-compact-table .member-fund>b{font-size:12px}
 .members-compact-table .member-fund .member-low-fund{display:none}
 .members-compact-table .member-participation{grid-area:2/1/3/2;align-self:center}
 .members-compact-table .member-participation>span{white-space:nowrap;line-height:20px;font-size:12px}
 .members-compact-table .member-participation>small{display:none}
 .members-panel .members-compact-table .member-actions{grid-area:2/2/3/3;align-self:start}
 .members-compact-table tr:not(.has-finance) .member-identity{grid-column:1/-1}
 .members-compact-table .member-action-controls{flex-wrap:nowrap}
 .members-compact-table tr:has(.member-more[open]){grid-template-rows:auto auto}
 .members-panel .members-compact-table tr:has(.member-more[open]) .member-actions{grid-column:1/-1;grid-row:3}
 .members-compact-table .member-more[open]{flex:1}.members-compact-table .member-more-body{width:100%}
}

.receipt-thumbnail{justify-self:start;display:inline-flex;flex-direction:column;align-items:center;gap:4px;border:1px solid var(--line);border-radius:8px;padding:4px;background:white;color:var(--forest);font-size:12px;cursor:pointer;min-width:104px;min-height:104px}
.receipt-thumbnail>img{width:96px;height:96px;object-fit:cover;border-radius:4px}.receipt-thumbnail>span{line-height:20px}
.receipt-image-full{padding:16px;text-align:center}.receipt-image-full>img{display:block;max-width:100%;max-height:75vh;object-fit:contain;margin:auto}

/* P2 monthly report, review hints and existing expense links. */
.finance-book-modes{margin:0 16px 12px;display:flex;flex-wrap:wrap}.finance-book-modes button{min-height:44px;font-size:13px}
.finance-monthly-report{padding:16px;display:grid;gap:16px;min-width:0}.finance-monthly-report :is(h3,h4,p,dl,ul){margin:0}.report-heading{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}.report-heading h3{font-size:18px;line-height:24px}
.report-balances{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.report-balances>div{padding:12px;background:var(--cream,#f4f7ef);border:1px solid var(--border);border-radius:12px;min-width:0}.report-balances span{display:block;font-size:12px;line-height:20px}.report-balances strong{display:block;font-size:22px;line-height:32px;overflow-wrap:anywhere}
.report-equation,.finance-monthly-report p{font-size:12px;line-height:20px;color:var(--muted,#627365)}.report-breakdowns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.report-breakdowns section{padding:12px;border:1px solid var(--border);border-radius:12px;min-width:0}.report-breakdowns h4,.report-attendance h4{font-size:14px;line-height:24px;margin-bottom:8px}.report-breakdowns dl>div{display:flex;justify-content:space-between;gap:12px;min-height:32px;align-items:center;font-size:13px;line-height:20px}.report-breakdowns dt{min-width:0;overflow-wrap:anywhere}.report-breakdowns dd{margin:0;text-align:right;font-weight:650;white-space:nowrap}
.report-method summary{min-height:44px;padding:10px 0;font-size:13px;line-height:24px;cursor:pointer}.report-method p+p{margin-top:8px}.report-people-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,240px);gap:12px;margin:12px 0}.report-people-filters label,.expense-links-body label{display:grid;gap:4px;font-size:12px;line-height:20px;min-width:0}.report-people-filters :is(input,select),.expense-links-body :is(input,select){width:100%;min-width:0;max-width:100%;min-height:44px;border:1px solid var(--border);border-radius:8px;padding:8px;font:inherit;background:white}
.report-attendance ul,.session-expense-links ul{list-style:none;padding:0;margin:0}.report-attendance li{min-height:48px;padding:4px 0;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;line-height:20px}.report-attendance li>span{min-width:0;overflow-wrap:anywhere}.report-attendance li>b{text-align:right;flex-shrink:0}.report-attendance small{display:block;font-size:12px;font-weight:400;line-height:20px}
.payment-duplicate-warning{background:#fff6e7;border:1px solid #e6bb75;border-radius:8px;padding:12px;color:#744309;min-width:0;overflow-wrap:anywhere;font-size:13px;line-height:20px}.payment-duplicate-warning p{margin:8px 0}.payment-duplicate-warning ul{margin:0;padding-left:20px}.payment-duplicate-warning li+li{margin-top:8px}.payment-duplicate-warning small{display:block;font-size:12px}
.community-intro{flex-wrap:wrap;gap:12px}.community-intro p{flex:1 1 240px;margin:0;font-size:13px;line-height:20px}.community-intro .wallet-actions{flex-wrap:wrap}.community-intro .button{min-height:44px}
.session-expense-links{margin:12px 0;border:1px solid var(--border);border-radius:12px;min-width:0}.session-expense-links>summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;min-height:52px;padding:12px;font-size:13px;line-height:24px;cursor:pointer}.session-expense-links>summary span{font-size:12px}.expense-links-body{display:grid;gap:12px;padding:12px;border-top:1px solid var(--border);min-width:0}.expense-links-body p{margin:0;font-size:12px;line-height:20px}.expense-link-form{display:flex;flex-wrap:wrap;align-items:end;gap:12px}.expense-link-form label{flex:1 1 220px}.expense-link-form button,.session-expense-links .text-button{min-height:44px}.session-expense-links li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px;line-height:20px}.session-expense-links li>span{min-width:0;overflow-wrap:anywhere}.session-expense-links li>b{white-space:nowrap}.session-expense-links li small{display:block;font-size:12px;line-height:20px}
@media(max-width:760px){.finance-monthly-report{padding:12px;gap:12px}.report-balances{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.report-balances strong{font-size:18px;line-height:28px}.report-breakdowns{grid-template-columns:minmax(0,1fr);gap:12px}.report-people-filters{grid-template-columns:minmax(0,1fr)}.report-heading .picker-field{max-width:100%}.expense-link-form>button{width:100%}.session-expense-links li{grid-template-columns:minmax(0,1fr) auto;gap:4px 8px}.session-expense-links li>span{grid-row:span 2}.session-expense-links li>.text-button{justify-self:end}.session-expense-links>summary{gap:0 8px}.community-intro .wallet-actions{width:100%}}

.finance-monthly-report .list-pagination :is(select,button),.session-expense-links .list-pagination :is(select,button){min-height:44px}
.session-expense-links>summary:before{content:'›';font-size:20px}.session-expense-links[open]>summary:before{transform:rotate(90deg)}.session-expense-links>summary>strong{flex:1;min-width:140px}.session-expense-links>summary:focus-visible,.report-method>summary:focus-visible{outline:3px solid #79b457;outline-offset:2px}
.community-intro p{min-width:0;overflow-wrap:anywhere}
@media(max-width:760px){.report-people-filters :is(input,select),.expense-links-body :is(input,select){font-size:16px}.report-heading .picker-field{max-width:100%}}
.wallet-transaction-row>.wallet-edit-deposit{grid-column:1/-1;justify-self:start;margin-top:2px}
.cashbook-amount>.cashbook-edit{display:block;margin-left:auto;margin-top:2px;font-size:12px;font-weight:650;min-height:24px;padding:2px 0}

/* Shared panel gutters: content, filters and pagination share the same inset. */
:root{--panel-inset:20px;--section-gap:16px}
.panel{min-width:0}
.panel>.list-pagination{padding:14px var(--panel-inset);margin:0;border-top:1px solid var(--border)}
.list-pagination{gap:10px 12px;line-height:1.5}
.list-pagination label{min-width:0;flex-wrap:wrap}
.list-pagination select{min-height:40px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);padding:7px 10px}
.list-pagination>button{min-height:40px}
.compact-filter-bar{padding:14px;gap:12px;align-items:end}
.compact-filter-bar label{min-width:0;line-height:1.5}
.compact-filter-bar>.button{flex-shrink:0}

/* Finance has a full-width tab bar; everything below is inset consistently. */
.manager-collection>.group-cashbook{padding:4px var(--panel-inset) var(--panel-inset)}
.manager-collection>.finance-period,
.manager-collection>.table-note,
.manager-collection>.group-session-finance{margin-inline:var(--panel-inset)}
.manager-collection>.finance-toolbar{padding-inline:var(--panel-inset)}
.manager-collection>.wallet-overview{padding-inline:var(--panel-inset)}
.manager-collection>.manager-debt-list{padding-inline:var(--panel-inset)}
.manager-collection>.manager-debt-filters{padding-inline:var(--panel-inset)}
.cashbook-panel{padding:var(--panel-inset)}
.group-cashbook{display:grid;gap:var(--section-gap);min-width:0}
.group-cashbook>.cashbook-summary,
.group-cashbook>.compact-filter-bar,
.group-cashbook>.cashbook-filter-total,
.group-cashbook>.finance-period,
.group-cashbook>.list-pagination{margin:0}
.group-cashbook>.finance-period{padding:10px 12px}
.cashbook-summary{gap:12px}
.cashbook-summary>div{padding:16px;min-width:0}
.cashbook-summary strong{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.cashbook-filter-total{gap:8px 20px;align-items:center;padding:0 2px;font-size:13px;line-height:1.6}
.cashbook-filter-total>span:last-child{display:flex;gap:6px;flex-wrap:wrap}
.group-cashbook>.table-wrap{border:1px solid var(--border);border-radius:10px;overflow:auto}
.cashbook-table th,.cashbook-table td{padding:12px 16px;line-height:1.55}
.cashbook-table tbody tr:last-child td{border-bottom:0}
.cashbook-table .badge{margin-inline-start:6px}
.group-cashbook>.list-pagination{padding:0;min-width:0}
.cashbook-empty{padding:28px 20px;text-align:center;background:#fafbf8;border:1px dashed #dce5d6;border-radius:12px;display:grid;justify-items:center;gap:8px}
.cashbook-empty strong{font-size:15px;line-height:1.5;color:#405440}
.cashbook-empty p{font-size:13px;line-height:1.6;color:#687566;margin:0;max-width:440px}
.cashbook-note{margin:0;padding:12px 14px;border-radius:8px;background:#f5f8f1;color:#64725e;font-size:12px;line-height:1.65}

@media(max-width:760px){
 .group-context-actions>label{flex:1 1 100%;width:100%}
 .group-context-actions .group-picker-trigger{width:100%;min-width:0}
 .group-context-actions>.group-refresh{margin:0}
 .group-context-actions>a.button{flex:1 1 auto;min-width:0}
 :root{--panel-inset:14px;--section-gap:14px}
 .panel>.list-pagination{padding:14px var(--panel-inset)}
 .list-pagination{row-gap:10px}
 .list-pagination label{width:auto;flex:1 1 100%;justify-content:space-between}
 .list-pagination>span:first-child{flex-basis:100%}
 .list-pagination>button{min-height:44px}
 .compact-filter-bar{padding:12px;gap:12px}
 .compact-filter-bar>.button{min-height:40px}
 .cashbook-summary>div{padding:14px}
 .cashbook-filter-total{align-items:flex-start;flex-direction:column}
 .cashbook-table th,.cashbook-table td{padding:10px 12px}
 .cashbook-empty{padding:24px 16px}
 .cashbook-note{padding:12px;font-size:12px}
}

/* Form feedback is shared by finance, group management and account forms. */
.required-mark{color:#bc2b22;font-weight:700;white-space:nowrap}
.field-label{display:inline;line-height:1.5}
.expense-deficit{padding:12px 14px;border:1px solid #edce91;border-radius:10px;background:#fff8e8;color:#80520f;font-size:13px;line-height:1.6}
.expense-deficit>strong{display:block;margin-bottom:4px}
.expense-deficit>p{margin:0}
.expense-form .money-quick{gap:6px;margin-top:8px}
.expense-form .money-quick button{min-height:36px;padding:6px 10px;font-size:12px}
.expense-form .money-quick-label{font-size:12px}
.success-toast[popover]{inset:20px 20px auto auto;margin:0;border:0;max-width:min(460px,calc(100vw - 32px));padding:12px 14px;line-height:1.6}
.success-toast[popover]:not(:popover-open){display:none}
.success-toast>span{min-width:0;overflow-wrap:anywhere}
.success-toast button{width:36px;height:36px;flex-shrink:0;border-radius:6px}
.success-toast button:hover{background:#ffffff16}
@media(max-width:760px){.success-toast[popover]{inset:12px 12px auto auto;max-width:calc(100vw - 24px)}.expense-form .money-quick button{min-height:40px}}
.expense-deficit{margin-top:12px}
.expense-form .form-footer{margin-top:14px}
.finance-operation-form label{align-content:start}
.finance-operation-form label:has(>input[type=checkbox]){display:flex;align-items:flex-start;gap:10px;grid-column:1/-1;font-weight:400;line-height:1.6}
.finance-operation-form label>input[type=checkbox]{width:18px;height:18px;min-height:18px;flex-shrink:0;margin:3px 0 0;padding:0}
.wallet-ledger>.list-pagination{padding:12px 0;border-bottom:1px solid var(--border)}
.portal-top-up{padding-top:20px}
.portal-top-up .member-payment-request h2{font-size:18px;margin-bottom:8px}
.portal-top-up .member-payment-request>.form-hint{margin-bottom:16px;font-size:13px;line-height:1.65}
.expense-form>[role=alert]{margin-top:10px}
@media(max-width:760px){.portal-top-up{padding-top:16px}}
.portal-ledger>.team-disclosure>.member-request-history{padding:16px;margin:0}
.portal-ledger>.team-disclosure>.member-request-history>h2{font-size:16px}
.portal-ledger>.member-dues>h2{font-size:18px}
@media(max-width:760px){.portal-ledger>.team-disclosure>.member-request-history{padding:14px}}

/* Nhóm của tôi: group list first, details of the selected group right below. */
.group-inbox-empty{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 16px;margin-bottom:16px;padding:4px 2px;color:var(--muted);font-size:13px}
.group-inbox-empty p{margin:0}
.group-inbox-empty .text-button{min-height:44px;gap:6px}
.clubs-page{gap:16px}
.clubs-section-heading{align-items:flex-start;gap:16px;flex-wrap:wrap}
.clubs-section-heading h2{display:flex;align-items:center;gap:4px;font-size:18px;color:var(--forest)}
.clubs-section-heading p{margin:6px 0 0;font-size:13px;color:var(--muted)}
.clubs-section-heading>.button{min-height:44px;flex-shrink:0}
.clubs-search{display:grid;gap:6px;max-width:360px;font-size:13px;color:var(--muted)}
.clubs-search input{min-height:44px}
.club-card{min-height:76px;padding:14px 16px;gap:12px;cursor:pointer}
.club-card:focus-visible{outline:2px solid #286347;outline-offset:3px}
.club-card.selected{border-width:2px;padding:13px 15px}
.club-card-current{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;padding:4px 9px;border-radius:999px;background:#dcecd0;color:#2c5a36;font-size:12px;font-weight:600;white-space:nowrap}
.group-kicker{font-size:11px}
.group-facts span,.group-facts small{font-size:12px}
.clubs-settings.group-detail{scroll-margin-top:16px}
.clubs-settings.group-detail .session-template-settings{margin:0;padding:16px 18px;border:1px solid var(--border);border-radius:12px;background:#fff}
.clubs-settings.group-detail .session-template-settings h2{margin:0 0 6px;font-size:15px;line-height:1.4}
.clubs-settings.group-detail .session-template-settings p{font-size:13px}
.clubs-settings.group-detail .session-template-settings small{font-size:12px}
.clubs-settings.group-detail .session-template-settings>.button{flex-shrink:0;min-height:44px}
.clubs-settings.group-detail .group-section-tabs{margin:4px 0 0}
.clubs-settings.group-detail .clubs-empty .text-button{min-height:44px;padding-inline:4px;text-decoration:underline}
.modal .clubs-confirm{margin:0;padding:20px 24px 24px;border:0;border-radius:0;background:none}
.modal .clubs-confirm p{margin:0;font-size:14px;line-height:1.6}
@media(max-width:760px){
  .clubs-section-heading>.button{width:100%}
  .club-card{min-height:64px}
  .list-pagination select,.list-pagination .small-button{min-height:44px}
}
@media(max-width:420px){
  .group-person{flex-wrap:nowrap;gap:10px;padding:12px 0}
  .group-person-copy{flex-basis:auto}
  .group-person>.badge,.group-person>select{margin-left:0;flex-shrink:0}
  .group-person>.badge{margin-top:0}
  .group-person select{max-width:132px}
  .club-card-current{padding:4px 7px}
}
.clubs-page .compact-filter-bar input,.clubs-page .compact-filter-bar select{min-height:44px}

/* Tổng quan: fund health and debts first */
.overview-fund{padding:18px;margin:18px 0;display:grid;gap:14px}
.overview-fund-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.overview-fund-tiles>div{padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:#f7faf4;min-width:0}
.overview-fund-tiles span{display:block;font-size:13px;color:var(--muted)}
.overview-fund-tiles strong{display:block;margin:4px 0 2px;font-size:24px;color:var(--forest);font-variant-numeric:tabular-nums;letter-spacing:-.5px;overflow-wrap:anywhere}
.overview-fund-tiles strong.negative{color:#b3261e}
.overview-fund-tiles small{font-size:12px;color:var(--muted)}
.overview-fund-tiles .attention{background:#fdf5e6;border-color:#efdcb4}
.overview-fund-tiles .attention strong{color:#99601c}
.overview-fund-alert{display:flex;align-items:center;gap:10px;margin:0;padding:12px 14px;border-radius:10px;font-size:14px;line-height:1.5}
.overview-fund-alert svg{flex-shrink:0}
.overview-fund-alert span{flex:1;min-width:0}
.overview-fund-alert.warn{background:#fdf0e3;color:#7d4a12;border:1px solid #f0d3ad}
.overview-fund-alert.ok{background:#eef6e6;color:#2c5a36;border:1px solid #d4e6c5}
.overview-fund-alert .button{min-height:44px;flex-shrink:0}
.overview-fund-lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.overview-fund-lists h3{display:flex;align-items:center;gap:4px;font-size:15px;color:var(--forest);margin:0 0 8px}
.overview-fund-lists ul{list-style:none;margin:0;padding:0}
.overview-fund-lists li{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--border);font-size:14px}
.overview-fund-lists li:first-child{border-top:0}
.overview-fund-lists li span{flex:1;min-width:0;overflow-wrap:anywhere}
.overview-fund-lists li b{font-variant-numeric:tabular-nums;white-space:nowrap}
.overview-fund-lists .muted{font-size:13px;margin:6px 0 0}
.overview-fund-lists .text-button{min-height:44px}
.dashboard-grid.overview-schedule-only{grid-template-columns:1fr}
@media(max-width:760px){.overview-fund{padding:14px}.overview-fund-tiles{grid-template-columns:1fr 1fr}.overview-fund-tiles>div:first-child{grid-column:1/-1}.overview-fund-tiles strong{font-size:21px}.overview-fund-lists{grid-template-columns:1fr}.overview-fund-alert{flex-wrap:wrap}.overview-fund-alert .button{width:100%}}

/* Nhóm của tôi: group dashboard */
.group-alert{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid #f0d3ad;border-radius:12px;background:#fdf0e3;color:#7d4a12;font-size:14px;line-height:1.5}
.group-alert svg{flex-shrink:0}
.group-alert span{flex:1;min-width:0}
.group-alert .button{min-height:44px;flex-shrink:0}
.group-dash{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.group-tile{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 10px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:#f7faf4;color:inherit;font:inherit;text-align:left;text-decoration:none;cursor:pointer;min-width:0}
.group-tile svg{grid-row:1/3;color:#43664a}
.group-tile span{font-size:12px;color:var(--muted)}
.group-tile strong{font-size:22px;line-height:1.3;color:var(--forest);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.group-tile small{grid-column:1/-1;margin-top:4px;font-size:12px;color:#5f6f62;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.group-tile:hover{border-color:#82a87a;background:#f1f7e9}
.group-tile:focus-visible{outline:2px solid #286347;outline-offset:2px}
.group-tile.warn{background:#fdf5e6;border-color:#efdcb4}
.group-tile.warn strong,.group-tile.warn svg{color:#99601c}
.group-quick{display:flex;flex-wrap:wrap;gap:8px}
.group-quick .button{min-height:44px;flex:1 1 150px}
.clubs-settings.group-detail .group-section-tabs>button{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.group-tab-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#c2410c;color:#fff;font-size:12px;font-weight:700}
.group-settings{display:grid;gap:12px}
.group-setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:#fff}
.group-setting-row h3{font-size:15px;color:var(--forest);margin:0 0 4px}
.group-setting-row p{margin:0;font-size:13px;line-height:1.55;color:#5f6f62;overflow-wrap:anywhere}
.group-setting-row .button{min-height:44px;flex-shrink:0}
.group-settings .clubs-rename{margin-top:0}
@media(max-width:760px){
  .group-alert{flex-wrap:wrap}.group-alert .button{width:100%}
  .group-dash{grid-template-columns:1fr 1fr;gap:8px}.group-tile{padding:12px}.group-tile strong{font-size:19px}
  .group-setting-row{flex-direction:column;align-items:stretch}
  .clubs-settings.group-detail .group-section-tabs{flex-direction:column}
}
@media(prefers-reduced-motion:no-preference){
  .group-tile{transition:transform .2s cubic-bezier(.16,1,.3,1),border-color .2s ease,background-color .2s ease;animation:cau-rise .3s cubic-bezier(.16,1,.3,1) both}
  .group-tile:hover{transform:translateY(-2px)}
  .group-tile:nth-child(2){animation-delay:40ms}.group-tile:nth-child(3){animation-delay:80ms}.group-tile:nth-child(4){animation-delay:120ms}.group-tile:nth-child(5){animation-delay:160ms}
  .group-alert,.group-settings>*{animation:cau-rise .28s cubic-bezier(.16,1,.3,1) both}
}

/* Tìm sân trống & Quản lý sân: quick day strip, filters, owner queue. */
.court-toolbar{margin:12px 0}
.court-toolbar .search-input{flex:1;min-height:44px}
.court-toolbar .search-input input{width:100%}
.toolbar-right select{min-height:44px}
.court-days{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 8px;margin-bottom:8px;scrollbar-width:thin}
.court-days button{flex:1 0 76px;display:grid;gap:2px;justify-items:center;min-height:52px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:#fff;color:#52674c;font:inherit;cursor:pointer}
.court-days button b{font-size:13px;font-weight:600;white-space:nowrap}
.court-days button span{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.court-days button:hover{border-color:#82a87a;background:#f5f9f0}
.court-days button.active{background:var(--forest);border-color:var(--forest);color:#fff}
.court-days button.active span{color:#cfe2c4}
.court-days button:focus-visible,.court-next-open:focus-visible{outline:2px solid #286347;outline-offset:2px}
.court-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding:12px 14px;margin-bottom:14px;background:#f6f8f3;border:1px solid var(--border);border-radius:12px}
.court-filters label{display:grid;gap:6px;font-size:13px;color:var(--muted)}
.court-filters select{min-height:44px;min-width:190px;border:1px solid var(--border);border-radius:8px;background:#fff;padding:8px 12px;font-size:14px;color:var(--text)}
.court-filters .court-only-free{display:flex;align-items:center;gap:8px;min-height:44px;color:var(--text);cursor:pointer}
.court-only-free input{width:18px;height:18px;accent-color:var(--forest)}
.court-my-bookings{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin-left:auto;padding:0 12px;border-radius:8px;background:#e9f3dc;color:#2c5a36;font-size:13px;font-weight:600;text-decoration:none}
.court-day-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}
.court-day-stats>div{padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:#fff;min-width:0}
.court-day-stats span{display:block;font-size:12px;color:var(--muted)}
.court-day-stats strong{display:block;margin-top:4px;font-size:20px;color:var(--forest);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.court-day-stats .attention{background:#fdf5e6;border-color:#efdcb4}
.court-day-stats .attention strong{color:#99601c}
.court-requests{margin-bottom:16px;border-color:#efdcb4}
.court-requests ul{list-style:none;margin:0;padding:0 20px 8px}
.court-requests li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--border)}
.court-requests li>div:first-child{min-width:0}
.court-requests strong{font-size:14px;overflow-wrap:anywhere}
.court-requests p{margin:4px 0 0;font-size:13px;color:#5f6f62;overflow-wrap:anywhere}
.court-request-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.court-request-actions .button{min-height:44px}
.court-info{flex-wrap:wrap;gap:8px 16px;margin-bottom:14px}
.slot-legend{display:flex;flex-wrap:wrap;gap:6px 14px;list-style:none;margin:0;padding:0;font-size:12px;color:#5f6f62}
.slot-legend li{display:flex;align-items:center;gap:6px}
.slot-legend .slot{width:16px;height:16px;min-width:0;min-height:0;padding:0;border-radius:4px;cursor:default}
.slot{min-height:44px;min-width:58px;cursor:pointer}
.slot:disabled{cursor:default}
.slot.past{background:#f5f6f4;border-color:#e6e9e3;color:#9aa397;text-decoration:line-through}
.slot-hint{margin:-4px 0 8px;font-size:12px;color:var(--muted)}
.address a{color:inherit;text-decoration:underline;text-decoration-color:#c5d1bf;text-underline-offset:3px;overflow-wrap:anywhere}
.address a:hover{color:var(--forest)}
.venue-owner-actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:flex-end}
.court-next-open{width:100%;margin-top:8px;min-height:44px;white-space:normal;justify-content:space-between;background:#f4f9ee;border-color:#d4e3c8;color:#2c5a36}
.bookings-panel{scroll-margin-top:16px}
.bookings-panel .section-title{flex-wrap:wrap}
.bookings-panel .tabs button{min-height:40px}
.bookings-table td .text-button{min-height:36px}
@media(max-width:900px){.court-day-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.court-day-stats>div:last-child{grid-column:1/-1}}
@media(max-width:760px){
  .court-days button{flex:0 0 76px}
  .court-filters label,.court-filters select{width:100%;min-width:0}
  .court-filters .court-only-free{width:100%}
  .court-my-bookings{width:100%;margin-left:0;justify-content:center}
  .court-requests ul{padding:0 14px 6px}
  .court-requests li{flex-direction:column;align-items:stretch}
  .court-request-actions{flex-wrap:wrap}
  .court-request-actions .button{flex:1}
}
.slot.selected{background:var(--forest);border-color:var(--forest);color:#fff;font-weight:600}
.court-selection{position:sticky;bottom:12px;z-index:20;display:flex;align-items:center;gap:12px;margin:0 0 16px;padding:12px 14px;border:1px solid #cdddc7;border-radius:14px;background:#fff;box-shadow:0 8px 28px #173f3226}
.court-selection>div{flex:1;min-width:0}
.court-selection strong{display:block;font-size:14px;color:var(--forest);overflow-wrap:anywhere}
.court-selection p{margin:3px 0 0;font-size:12px;color:#5f6f62;overflow-wrap:anywhere}
.court-selection>b{font-size:16px;color:var(--forest);white-space:nowrap;font-variant-numeric:tabular-nums}
.court-selection .button{min-height:44px;flex-shrink:0}
.court-weekdays{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:0;border:0}
.court-weekdays legend{padding:0;margin-bottom:8px;font-size:13px;color:var(--muted)}
.court-weekdays label{display:flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:1px solid var(--border);border-radius:8px;font-size:13px;cursor:pointer}
.court-weekdays label:has(input:checked){background:#edf5e7;border-color:#b9d3a8;color:#2c5a36;font-weight:600}
.court-weekdays input{width:16px;height:16px;accent-color:var(--forest)}
.booking-summary p{margin:4px 0}
.booking-summary>strong{display:block;margin-top:10px}
.booking-runs{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.booking-runs li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #dbe8d2;border-radius:11px;background:#fff}
.booking-runs b{display:block;font-size:15px;color:var(--forest);font-variant-numeric:tabular-nums}
.booking-runs small{display:block;font-size:13px;color:#5f6f62}
.booking-runs li>span{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.booking-summary .booking-total{display:flex;justify-content:space-between;align-items:baseline;margin:10px 2px 0;font-size:14px}
.booking-total strong{font-size:17px;color:var(--forest)}
@media(max-width:760px){.court-selection{flex-wrap:wrap;bottom:8px}.court-selection>div{flex-basis:100%}.court-selection .button{flex:1}}

/* Venue cards with a photo cover, distance and quick actions. */
.venue-card{overflow:hidden;display:flex;flex-direction:column}
.venue-cover{position:relative;display:block;width:100%;aspect-ratio:16/7;padding:0;border:0;background:#1a4736;cursor:pointer;overflow:hidden}
.venue-cover:focus-visible{outline:3px solid #9fd07e;outline-offset:-3px}
.venue-cover-image,.venue-cover-art{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.venue-cover:hover .venue-cover-image,.venue-cover:hover .venue-cover-art{transform:scale(1.03)}
.venue-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0d2a2066 0%,#0d2a2000 38%,#0d2a2000 60%,#0d2a2080 100%);pointer-events:none}
.venue-cover-tags{position:absolute;z-index:1;top:12px;left:12px;right:12px;display:flex;flex-wrap:wrap;gap:6px}
.venue-cover-tags .badge{margin:0;background:#0d2a20b3;border-color:#ffffff33;backdrop-filter:blur(4px);font-size:12px}
.venue-cover-free{position:absolute;z-index:1;right:12px;bottom:12px;padding:5px 11px;border-radius:999px;background:var(--lime);color:#173c28;font-size:13px;font-weight:700}
.venue-cover-free.none{background:#ffffffd9;color:#6b756c;font-weight:600}
.art-floor{fill:#1a4736}.venue-art-1 .art-floor{fill:#2f4d3a}.venue-art-2 .art-floor{fill:#44522c}
.art-mat{fill:#2f7a55}.venue-art-1 .art-mat{fill:#3b7f66}.venue-art-2 .art-mat{fill:#5d7f3a}
.art-lines{fill:none;stroke:#f3fbe9;stroke-width:2.2;stroke-linejoin:round;opacity:.92}
.art-net{stroke:#f3fbe9;stroke-width:1.2;stroke-dasharray:3 3;fill:none;opacity:.8}
.art-net-top{stroke:#fff;stroke-width:2.4;fill:#ffffff24}
.art-shuttle{fill:#fff;opacity:.95}.art-shuttle circle{fill:var(--lime)}
.venue-body{display:flex;flex-direction:column;gap:0;flex:1}
.venue-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:10px}
.venue-title h2{font-size:19px;line-height:1.35;color:var(--forest);overflow-wrap:anywhere}
.venue-title .venue-heading-tags{flex-wrap:wrap;align-items:center;margin-top:6px;font-size:12px;color:var(--muted)}
.venue-title .venue-heading-tags .badge{margin:0}
.venue-price-tag{flex-shrink:0;text-align:right;font-size:12px;color:var(--muted);white-space:nowrap}
.venue-price-tag strong{display:block;font-size:19px;color:#315733;letter-spacing:-.4px}
.venue-quick{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 12px}
.venue-quick .button{min-height:44px;flex:1 1 auto;font-size:13px}
.venue-body .amenities{padding:0 0 12px}
.venue-body .amenities>span{font-size:12px}
.venue-owner-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-start;padding:12px 0;border-top:1px solid var(--border)}
.venue-owner-actions .button{min-height:44px;flex:1 1 auto;font-size:13px}
.venue-owner-todo{display:flex;gap:8px;align-items:flex-start;margin:0 0 4px;padding:10px 12px;border-radius:8px;background:#fdf5e6;color:#7d5a1f;font-size:13px;line-height:1.5}
.venue-owner-todo svg{flex-shrink:0;margin-top:2px}
.venue-body .slot-header{margin:12px 0 10px;padding-top:12px;border-top:1px solid var(--border)}
.court-near{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.court-near .button{min-height:44px}
.court-near select{min-width:150px}
.court-geo-note{flex-basis:100%;margin:0;font-size:12px;color:var(--muted)}
/* Venue detail dialog */
.venue-detail{display:grid;gap:16px;padding:20px 24px 24px}
.venue-gallery-main{aspect-ratio:16/8;border-radius:12px;overflow:hidden;background:#1a4736}
.venue-gallery-main>*{display:block;width:100%;height:100%;object-fit:cover}
.venue-gallery-thumbs{display:flex;gap:8px;margin-top:8px;overflow-x:auto;padding-bottom:2px}
.venue-gallery-thumbs button{flex:0 0 84px;height:58px;padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;background:#e8eee3;cursor:pointer}
.venue-gallery-thumbs button.active{border-color:var(--forest)}
.venue-gallery-thumbs img{display:block;width:100%;height:100%;object-fit:cover}
.venue-gallery-note{margin:8px 0 0;font-size:12px;color:var(--muted)}
.venue-detail-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.venue-fact{display:flex;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;min-width:0;color:#43664a}
.venue-fact>svg{flex-shrink:0;margin-top:3px}
.venue-fact>div{min-width:0}
.venue-fact span{display:block;font-size:12px;color:var(--muted)}
.venue-fact span b{color:#2c5a36}
.venue-fact strong{display:block;margin-top:3px;font-size:14px;color:var(--text);overflow-wrap:anywhere}
.venue-fact strong a{color:inherit}
.venue-fact small{display:block;margin-top:3px;font-size:12px;color:var(--muted)}
.venue-detail-actions{display:flex;flex-wrap:wrap;gap:8px}
.venue-detail-actions .button{min-height:44px;flex:1 1 150px}
.venue-map{width:100%;height:280px;border:1px solid var(--border);border-radius:12px}
.venue-description{margin:0;font-size:14px;line-height:1.65;color:#3d4b42;white-space:pre-line;overflow-wrap:anywhere}
.venue-week h3{margin:0 0 8px;font-size:15px;color:var(--forest)}
.venue-week ul{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.venue-week li{display:grid;grid-template-columns:96px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--border)}
.venue-week li:first-child{border-top:0}
.venue-week li.current{background:#f4f9ee}
.venue-week li strong{display:block;font-size:13px;text-transform:capitalize}
.venue-week li>div:first-child span{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.venue-week-hours{display:flex;flex-wrap:wrap;gap:5px}
.venue-week-hours span{padding:4px 8px;border:1px solid #d4e3c8;border-radius:6px;background:#f4f9ee;color:#3d6a33;font-size:12px;font-variant-numeric:tabular-nums}
.venue-week-hours small{margin-left:3px;color:#6f8a63}
.venue-week-hours em{font-style:normal;font-size:13px;color:var(--muted)}
.venue-week .text-button{min-height:40px}
/* Owner: location field and photo manager */
.venue-location-field{display:grid;gap:8px;margin-bottom:16px;padding:14px;border:1px solid var(--border);border-radius:12px;background:#f8faf6}
.venue-location-field .field{margin-bottom:0}
.venue-location-field>.button{justify-self:start;min-height:44px;white-space:normal;text-align:left}
.venue-location-field p{margin:0}
.venue-location-ok{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:#2c5a36}
.venue-photos{padding:20px 24px 24px}
.venue-photos ul{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.venue-photos li{position:relative;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff}
.venue-photos li>img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.venue-photos li>.badge{position:absolute;top:8px;left:8px;margin:0}
.venue-photos li>div{display:flex;justify-content:space-between;gap:8px;padding:4px 10px}
.venue-photos .text-button{min-height:40px}
.venue-photo-add label{display:grid;place-items:center;align-content:center;gap:8px;height:100%;min-height:190px;border:2px dashed #c5d6ba;border-radius:10px;color:#43664a;font-size:14px;font-weight:600;cursor:pointer}
.venue-photo-add{border:0!important}
.venue-photo-add label:hover{background:#f4f9ee}
.venue-photo-add input{position:absolute;width:1px;height:1px;opacity:0}
.venue-photo-add label:focus-within{outline:2px solid #286347;outline-offset:2px}
@media(max-width:760px){
  .venue-cover{aspect-ratio:16/8}
  .venue-title{flex-direction:column;gap:6px}
  .venue-price-tag{text-align:left}
  .venue-price-tag strong{display:inline;margin:0 3px}
  .court-near,.court-near .button,.court-near label,.court-near select{width:100%}
  .venue-detail,.venue-photos{padding:16px}
  .venue-detail-facts{grid-template-columns:1fr}
  .venue-week li{grid-template-columns:1fr auto;row-gap:6px}
  .venue-week-hours{grid-column:1/-1;grid-row:2}
  .venue-map{height:230px}
}
@media(prefers-reduced-motion:reduce){.venue-cover-image,.venue-cover-art{transition:none}.venue-cover:hover .venue-cover-image,.venue-cover:hover .venue-cover-art{transform:none}}
.venue-price-tag strong{display:inline;margin:0 2px 0 4px}
.venue-week li strong{text-transform:none}
.venue-week li strong::first-letter{text-transform:uppercase}
.venue-week .form-hint{margin:8px 0 0;font-size:12px}
.bookings-table td[data-label="Thao tác"]{display:flex;flex-wrap:wrap;align-items:center;gap:2px 14px}
@media(max-width:760px){.bookings-table td[data-label="Thao tác"]{display:flex}}

/* Pass sân */
.passes-notice>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;cursor:pointer;list-style:none}
.passes-notice>summary::-webkit-details-marker{display:none}
.passes-notice>summary span{font-size:13px;color:#43664a;text-decoration:underline;text-underline-offset:3px}
.passes-notice[open]>summary{margin-bottom:8px}
.passes-notice .pass-lifecycle{margin:0 0 10px}
.passes-notice p{font-size:13px}
.pass-status-filter select,.passes-toolbar>.button{min-height:44px;font-size:14px}
.passes-tabs button{min-height:40px;font-size:13px}
.passes-tabs span{font-size:11px}
.pass-card-top{flex-wrap:wrap}
.pass-card-top>strong{margin-left:auto;font-size:15px}
.pass-mine{padding:3px 8px;border-radius:5px;background:#e9f3dc;color:#2c5a36;font-size:11px;font-weight:600}
.pass-place a{color:#2c5a36;font-weight:600;white-space:nowrap}
.pass-actions .button{min-height:44px;font-size:13px}
.passes-empty-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:12px}
.passes-empty-actions .button{min-height:44px}
.passes-modal a{color:#2c5a36;font-weight:600}

/* Laptop widths: shorter cover, bookings as a list, compact owner rows. */
.venue-cover{aspect-ratio:auto;height:clamp(150px,22vw,210px)}
.booking-list{list-style:none;margin:0;padding:0 20px 8px}
.booking-list li{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 0;border-top:1px solid var(--border)}
.booking-when{display:grid;justify-items:center;padding:8px 4px;border-radius:10px;background:#f1f7e9;color:var(--forest)}
.booking-when strong{font-size:16px;font-variant-numeric:tabular-nums}
.booking-when span{font-size:12px;color:#5f6f62}
.booking-main{min-width:0}
.booking-main>strong{display:block;font-size:14px;overflow-wrap:anywhere}
.booking-main p{margin:3px 0 0;font-size:13px;color:#5f6f62}
.booking-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px!important}
.booking-meta .badge{margin:0}
.booking-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:2px 16px;max-width:280px}
.booking-actions .text-button{min-height:40px}
.booking-request-list{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
.booking-request-list>b{display:block;font-size:13px;margin-bottom:2px}
.booking-request-list .booking-request{margin-top:0;padding:10px 0;align-items:center}
.booking-request-list .booking-request:first-of-type{border-top:0}
.booking-request strong{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.booking-request strong .badge{margin:0}
.booking-request p{margin:3px 0 0;overflow-wrap:anywhere}
.booking-request>div:last-child{flex-direction:row;gap:12px;flex-shrink:0}
.booking-request .small-button,.booking-request .text-button{min-height:40px}
@media(max-width:760px){
  .venue-cover{height:170px}
  .booking-list{padding:0 14px 6px}
  .booking-list li{grid-template-columns:56px minmax(0,1fr)}
  .booking-actions{grid-column:1/-1;justify-content:flex-start;max-width:none}
  .booking-request{flex-wrap:wrap}
}

/* Vote: venue directions, reminder, calendar */
.vote-list-heading p a,.member-schedule-info p a{color:inherit;text-decoration:underline;text-decoration-color:#c5d1bf;text-underline-offset:3px}
.vote-list-heading p a:hover,.member-schedule-info p a:hover{color:var(--forest)}
.vote-list-footer>.button{width:auto;flex:1 1 220px;min-height:44px}
.vote-copied{flex-basis:100%;font-size:13px;color:#2c5a36}
.member-calendar-link{min-height:44px;text-decoration:underline;text-underline-offset:3px}

/* Giao lưu */
.play-detail a{color:inherit;text-decoration:underline;text-decoration-color:#c5d1bf;text-underline-offset:3px}
.play-detail a:hover{color:var(--forest)}
.play-form label>select+input{margin-top:6px}

/* Motion: short, compositor-only, and off when the user asks for reduced motion. */
@media(prefers-reduced-motion:no-preference){
  @keyframes cau-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  @keyframes cau-fade{from{opacity:0}to{opacity:1}}
  @keyframes cau-pop{0%{transform:scale(.92)}60%{transform:scale(1.04)}100%{transform:scale(1)}}
  @keyframes cau-slide-up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
  .venue-card,.club-card,.pass-card,.play-recruit-card,.vote-session-item,.portal-session,.system-account-row,.booking-list li,.court-requests li{animation:cau-rise .32s cubic-bezier(.16,1,.3,1) both}
  .venue-card:nth-child(2),.club-card:nth-child(2),.pass-card:nth-child(2),.play-recruit-card:nth-child(2),.portal-session:nth-child(2){animation-delay:50ms}
  .venue-card:nth-child(3),.club-card:nth-child(3),.pass-card:nth-child(3),.play-recruit-card:nth-child(3),.portal-session:nth-child(3){animation-delay:100ms}
  .venue-card:nth-child(n+4),.club-card:nth-child(n+4),.pass-card:nth-child(n+4),.play-recruit-card:nth-child(n+4),.portal-session:nth-child(n+4){animation-delay:140ms}
  .venue-card,.pass-card,.play-recruit-card,.club-card{transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s ease,border-color .2s ease}
  .venue-card:hover,.pass-card:hover,.play-recruit-card:hover{transform:translateY(-3px);box-shadow:0 14px 34px #173c2814}
  .slot,.court-days button,.court-weekdays label,.group-section-tabs>button,.venue-gallery-thumbs button{transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .12s ease}
  .slot:not(:disabled):hover{transform:translateY(-1px)}
  .slot:not(:disabled):active,.court-days button:active,.button:active{transform:scale(.96)}
  .slot.selected{animation:cau-pop .22s cubic-bezier(.16,1,.3,1)}
  .court-selection{animation:cau-slide-up .26s cubic-bezier(.16,1,.3,1) both}
  .court-next-open svg,.court-my-bookings svg:last-child,.venue-week .text-button svg{transition:transform .18s ease}
  .court-next-open:hover svg,.court-my-bookings:hover svg:last-child,.venue-week .text-button:hover svg{transform:translateX(3px)}
  .venue-gallery-main>*{animation:cau-fade .28s ease both}
  .venue-week li{animation:cau-rise .28s cubic-bezier(.16,1,.3,1) both}
  .venue-week li:nth-child(2){animation-delay:30ms}.venue-week li:nth-child(3){animation-delay:60ms}.venue-week li:nth-child(4){animation-delay:90ms}.venue-week li:nth-child(5){animation-delay:120ms}.venue-week li:nth-child(n+6){animation-delay:150ms}
  .venue-map,.court-requests,.court-day-stats>div,.overview-fund,.passes-notice[open]>*:not(summary),.vote-copied,.venue-location-ok{animation:cau-rise .28s cubic-bezier(.16,1,.3,1) both}
  .court-day-stats>div:nth-child(2){animation-delay:40ms}.court-day-stats>div:nth-child(3){animation-delay:80ms}.court-day-stats>div:nth-child(4){animation-delay:120ms}.court-day-stats>div:nth-child(5){animation-delay:160ms}
  .overview-fund-tiles>div,.overview-fund-lists li{animation:cau-rise .3s cubic-bezier(.16,1,.3,1) both}
  .overview-fund-tiles>div:nth-child(2){animation-delay:50ms}.overview-fund-tiles>div:nth-child(3){animation-delay:100ms}
  .venue-cover-free{transition:transform .2s cubic-bezier(.16,1,.3,1)}
  .venue-cover:hover .venue-cover-free{transform:scale(1.06)}
  dialog.modal[open]{animation:cau-slide-up .24s cubic-bezier(.16,1,.3,1) both}
  dialog.modal[open]::backdrop{animation:cau-fade .2s ease both}
}

/* Notification bell */
.heading-actions{align-items:center}
.notification-bell{position:relative}
.notification-trigger{position:relative;width:44px;min-height:44px;padding:0;border-radius:12px}
.notification-count{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#c2410c;color:#fff;font-size:11px;font-weight:700;line-height:20px;text-align:center;box-shadow:0 0 0 2px var(--canvas)}
.notification-panel{position:absolute;z-index:60;top:calc(100% + 8px);right:0;width:min(380px,calc(100vw - 32px));max-height:min(70vh,560px);display:flex;flex-direction:column;background:#fff;border:1px solid #d4dfd0;border-radius:14px;box-shadow:0 16px 44px #18342626;overflow:hidden}
.notification-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border)}
.notification-panel-head strong{font-size:15px;color:var(--forest)}
.notification-panel ul{list-style:none;margin:0;padding:0;overflow-y:auto}
.notification-panel li+li{border-top:1px solid var(--border)}
.notification-panel li button{display:block;width:100%;padding:12px 14px;border:0;background:#fff;text-align:left;font:inherit;cursor:pointer}
.notification-panel li button:hover,.notification-panel li button:focus-visible{background:#f5f9f0;outline:none}
.notification-panel li button.unread{background:#f1f7e9}
.notification-panel li strong{display:block;margin-top:4px;font-size:14px;color:var(--text)}
.notification-panel li p{margin:3px 0 4px;font-size:13px;line-height:1.5;color:#5f6f62;overflow-wrap:anywhere}
.notification-panel li small{font-size:12px;color:var(--muted)}
.notification-kind{display:inline-block;padding:2px 8px;border-radius:5px;background:#e9f3dc;color:#2c5a36;font-size:11px;font-weight:600}
.notification-kind.kind-pass{background:#e6eefc;color:#274a8a}
.notification-kind.kind-venue{background:#fdf0e3;color:#7d4a12}
.notification-kind.kind-payment{background:#f3ebfa;color:#5b3a86}
.notification-empty{margin:0;padding:22px 16px;font-size:13px;line-height:1.6;color:var(--muted);text-align:center}
.notification-desktop{min-height:44px;padding:0 14px;border-top:1px solid var(--border);justify-content:flex-start;text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.notification-panel{position:fixed;top:auto;bottom:12px;left:12px;right:12px;width:auto;max-height:70vh}}
@media(prefers-reduced-motion:no-preference){.notification-panel{animation:cau-rise .2s cubic-bezier(.16,1,.3,1) both;transform-origin:top right}.notification-count{animation:cau-pop .3s cubic-bezier(.16,1,.3,1)}}

/* Owner: schedule/renters switch, per-court tools, slot sheet */
.owner-view-tabs{margin:4px 0 12px}
.owner-view-tabs button{min-height:44px;padding:9px 18px;font-size:14px}
.owner-slot-tools{display:flex;flex-wrap:wrap;align-items:center;gap:2px 14px;margin:0 0 8px}
.owner-slot-tools span{flex:1 1 220px}
.owner-slot-tools .text-button{min-height:36px}
.court-slot-row{align-items:flex-start}
.court-row-label{display:grid;gap:1px;min-width:62px;padding-top:6px}
.court-row-label small{font-size:11px;color:var(--muted);white-space:nowrap}
.court-row-label .text-button{justify-content:flex-start;min-height:28px;padding:2px 0;font-size:12px;text-decoration:underline;text-underline-offset:3px}
.slot-sheet{display:grid;gap:14px;padding:20px 24px 24px}
.slot-sheet-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:14px;color:#5f6f62}
.slot-sheet-meta .badge{margin:0}
.slot-sheet-renter{padding:14px;border:1px solid var(--border);border-radius:12px;background:#f7faf4}
.slot-sheet-renter>span{font-size:12px;color:var(--muted)}
.slot-sheet-renter strong{display:block;margin:2px 0;font-size:17px;color:var(--forest);overflow-wrap:anywhere}
.slot-sheet-renter p{margin:4px 0 0;font-size:14px;overflow-wrap:anywhere}
.slot-sheet-form{display:grid;gap:10px;padding:14px;border:1px solid var(--border);border-radius:12px}
.slot-sheet-form .field{margin:0}
.slot-sheet-actions{display:flex;flex-wrap:wrap;gap:8px}
.slot-sheet-actions .button,.slot-sheet-form .button{min-height:44px;flex:1 1 160px}
.button.danger-outline{border-color:#e7b9b3;color:#b3261e;background:#fff}
.button.danger-outline:hover:not(:disabled){background:#fdf1ef}
.owner-renters{padding:16px;margin-bottom:16px}
.owner-renters .booking-list{padding:0}
.owner-renters .booking-main small{font-weight:400;color:#5f6f62}
.owner-renters .booking-actions b{font-variant-numeric:tabular-nums}
.owner-renters-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.owner-renters-top{margin:0 0 6px;font-size:13px;color:#5f6f62}
.owner-renters-skeleton{display:grid;gap:10px}
.owner-renters-skeleton i{display:block;height:58px;border-radius:10px;background:linear-gradient(90deg,#eef2ea 25%,#f7faf4 37%,#eef2ea 63%);background-size:400% 100%}
@media(prefers-reduced-motion:no-preference){.owner-renters-skeleton i{animation:cau-shimmer 1.3s ease infinite}@keyframes cau-shimmer{from{background-position:100% 0}to{background-position:0 0}}.slot-sheet>*{animation:cau-rise .24s cubic-bezier(.16,1,.3,1) both}}
@media(max-width:900px){.owner-renters-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.owner-renters-stats>div:last-child{grid-column:auto}}
@media(max-width:760px){.slot-sheet{padding:16px}.owner-view-tabs{width:100%}.owner-view-tabs button{flex:1}}
.booking-request-list>summary{display:flex;align-items:center;min-height:44px;font-size:13px;font-weight:600;color:#2c5a36;cursor:pointer}
.court-row-label{min-width:78px}
.court-row-label .text-button{white-space:nowrap}

/* Layout sweep: readable minimum sizes and tap targets everywhere */
.badge,.pass-status,.pass-mine,.group-kicker,.honors-hours,.honors-rule,.notification-kind{font-size:12px}
.vote-person-search input{min-height:44px}
.credits-link{display:inline-flex;align-items:center;min-height:44px;font-size:12px}
.app-footer,.app-footer span,.main-content>footer,.main-content>footer span{font-size:12px}
@media(max-width:760px){.credits-link{font-size:12px}}

/* Venue owner role: application and admin review */
.owner-application{display:grid;gap:16px;padding:22px;max-width:760px}
.owner-application-intro h2{font-size:20px;color:var(--forest);margin:0 0 6px}
.owner-application-intro p{margin:0;font-size:14px;line-height:1.6;color:#4b5a4f}
.owner-application-intro ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;list-style:none;margin:14px 0 0;padding:0}
.owner-application-intro li{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#f7faf4;font-size:13px}
.owner-application-intro li b{display:grid;place-items:center;flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--forest);color:#fff;font-size:12px}
.owner-application-status{display:grid;gap:6px;justify-items:start;padding:16px;border:1px solid #efdcb4;border-radius:12px;background:#fdf8ee}
.owner-application-status.rejected{border-color:var(--border);background:#f7f8f6}
.owner-application-status .badge{margin:0}
.owner-application-status strong{font-size:17px;color:var(--forest)}
.owner-application-status p{margin:0;font-size:14px;overflow-wrap:anywhere}
.owner-application-status .button,.owner-application-form .button{min-height:44px}
.owner-application-form{margin:0}
.system-summary .attention{background:#fdf5e6;border-color:#efdcb4;color:#7d4a12}
.system-account-row .badge{margin:0}
@media(max-width:760px){.owner-application{padding:16px}.owner-application-intro ol{grid-template-columns:1fr}}
@media(prefers-reduced-motion:no-preference){.owner-application>*{animation:cau-rise .28s cubic-bezier(.16,1,.3,1) both}}
.court-day-stats{grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:1100px){.court-day-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.court-day-stats>div:last-child{grid-column:auto}}
@media(max-width:760px){.court-day-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.owner-renters-stats{grid-template-columns:repeat(4,minmax(0,1fr))}

/* Slot palette: each state has its own hue and a second cue (pattern or label), never colour alone. */
.slot.open{background:#eaf6df;border-color:#9ccb7a;color:#24521a}
.slot.pending{background:#fff1d6;border-color:#e3b458;color:#7a4f00}
.slot.booked{background:#e6ebf5;border-color:#b5c0d6;color:#36425e}
.slot.booked.mine,.slot.pending.mine{background:#dcebff;border-color:#7fa7e8;color:#1b4490}
.slot.blocked{background:repeating-linear-gradient(135deg,#eef0ec 0 6px,#e2e6df 6px 12px);border-color:#cfd5cb;color:#5e675f}
.slot.blocked.closure,.slot.shift.blocked{background:repeating-linear-gradient(135deg,#f6eee6 0 6px,#ecdfd2 6px 12px);border-color:#dcc7b0;color:#6b4a2b}
.slot.past{background:#f5f6f4;border-color:#e6e9e3;color:#8b948a}
.slot.selected{background:var(--forest);border-color:var(--forest);color:#fff}
.slot.deal{border-color:#e08a2b;box-shadow:inset 0 -3px 0 #f5b55c}
.slot.selected.deal{box-shadow:inset 0 -3px 0 #f5b55c}
.slot small{font-size:11px;font-weight:600}
.slot .slot-deal{color:#b3540a}
.slot.selected .slot-deal,.slot.selected small{color:#e9f7c7}
.slot.shift{min-width:118px;flex-direction:column;gap:2px;padding:8px 12px;font-weight:600}
.slot.shift small{font-weight:500}
.slot-legend .slot.deal{box-shadow:inset 0 -3px 0 #f5b55c}
.venue-cover-deal{position:absolute;z-index:1;left:12px;bottom:12px;max-width:calc(100% - 150px);padding:5px 11px;border-radius:999px;background:#c2410c;color:#fff;font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Owner: maintenance and promotions panels */
.venue-ops{display:grid;gap:14px;padding:20px 24px 24px}
.venue-ops-list{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.venue-ops-list li{display:flex;align-items:center;gap:12px;padding:12px 14px;border-top:1px solid var(--border)}
.venue-ops-list li:first-child{border-top:0}
.venue-ops-list li>div{flex:1;min-width:0}
.venue-ops-list strong{font-size:14px;overflow-wrap:anywhere}
.venue-ops-list p{margin:3px 0 0;font-size:13px;color:#5f6f62;overflow-wrap:anywhere}
.venue-ops-list .badge{margin:0;flex-shrink:0}
.venue-ops-list .text-button{min-height:40px;flex-shrink:0}
.venue-ops-empty{margin:0;padding:14px;border:1px dashed #c5d6ba;border-radius:12px;font-size:13px;color:var(--muted)}
.venue-ops-form{margin:0;padding:16px;border:1px solid var(--border);border-radius:12px;background:#f8faf6}
.venue-ops-form h3{margin:0 0 12px;font-size:15px;color:var(--forest)}
.venue-ops-form .button{min-height:44px}
/* Detail: offers and closures */
.venue-offers{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.venue-offers li{display:grid;gap:2px;padding:10px 14px;border:1px solid #f0d3ad;border-left:4px solid #c2410c;border-radius:10px;background:#fff8ef}
.venue-offers strong{font-size:14px;color:#7d3a0a}
.venue-offers span{font-size:13px;color:#7d4a12}
.venue-closure-note{margin:0;padding:10px 14px;border-radius:10px;background:#f6eee6;color:#6b4a2b;font-size:13px;line-height:1.5}
@media(max-width:760px){.venue-ops{padding:16px}.venue-ops-list li{flex-wrap:wrap}.slot.shift{min-width:104px}.venue-cover-deal{max-width:calc(100% - 130px);font-size:12px}}
@media(prefers-reduced-motion:no-preference){.venue-cover-deal{animation:cau-pop .4s cubic-bezier(.16,1,.3,1) .2s both}.venue-ops-list li,.venue-offers li{animation:cau-rise .26s cubic-bezier(.16,1,.3,1) both}}
.vote-list-stats .full{background:#fdf0e3;color:#7d4a12}
.vote-list-stats .waiting{background:#fff1d6;color:#7a4f00}
.vote-list-heading p small{color:var(--muted)}
.member-venue-address{margin:-2px 0 0 23px;font-size:12px;color:var(--muted)}

/* Price list, fixed customers, reviews, owner report */
.owner-fixed{padding:16px;margin-bottom:16px;display:grid;gap:12px}
.owner-fixed-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.owner-fixed-head h2{display:flex;align-items:center;gap:4px;font-size:16px;color:var(--forest);margin:0}
.owner-fixed-head p{margin:4px 0 0;font-size:13px;color:#5f6f62;max-width:60ch}
.owner-fixed-head .button{min-height:44px;flex-shrink:0}
.slot.fixed{border-style:dashed}
.slot-fixed{color:#36425e}
.venue-rating{display:inline-flex;align-items:center;gap:4px;color:var(--text);font-weight:600}
.stars{display:inline-flex;gap:1px;line-height:1}
.stars i{font-style:normal;color:#d5dbd0}
.stars i.on{color:#e0a100}
.venue-prices h3,.venue-reviews h3{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px;font-size:15px;color:var(--forest)}
.venue-reviews h3 span{font-size:13px;font-weight:500;color:#5f6f62}
.venue-prices ul,.venue-reviews ul{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.venue-prices li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-top:1px solid var(--border)}
.venue-prices li:first-child,.venue-reviews li:first-child{border-top:0}
.venue-prices li span{display:grid;min-width:0}
.venue-prices li strong{font-size:14px}
.venue-prices li small{font-size:12px;color:var(--muted)}
.venue-prices li b{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--forest)}
.venue-reviews li{padding:12px 14px;border-top:1px solid var(--border)}
.venue-reviews li>div{display:flex;align-items:center;justify-content:space-between;gap:10px}
.venue-reviews li strong{display:flex;align-items:center;gap:8px;font-size:14px}
.venue-reviews li strong .badge{margin:0}
.venue-reviews li p{margin:6px 0 4px;font-size:14px;line-height:1.55;overflow-wrap:anywhere}
.venue-reviews li small{font-size:12px;color:var(--muted)}
.venue-review-form{display:grid;gap:10px;margin-bottom:12px;padding:14px;border:1px solid var(--border);border-radius:12px;background:#f8faf6}
.venue-review-form fieldset{margin:0;padding:0;border:0}
.venue-review-form legend{padding:0;margin-bottom:6px;font-size:14px;font-weight:600;color:var(--forest)}
.venue-review-form textarea{width:100%;min-height:64px}
.venue-review-form .button{justify-self:start;min-height:44px}
.star-input{display:flex;gap:4px}
.star-input button{width:44px;height:44px;border:1px solid var(--border);border-radius:10px;background:#fff;color:#c9d0c4;font-size:24px;line-height:1;cursor:pointer}
.star-input button.on{color:#e0a100;border-color:#ecc96a;background:#fff9e8}
.star-input button:focus-visible{outline:2px solid #286347;outline-offset:2px}
.owner-report{padding:16px;margin-bottom:16px;display:grid;gap:16px}
.owner-report-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin:0}
.owner-report-stats strong small{font-size:12px;font-weight:400;color:var(--muted)}
.owner-chart{margin:0;padding:14px 16px 12px;border:1px solid var(--border);border-radius:12px;background:#fff}
.owner-chart figcaption{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;margin-bottom:12px}
.owner-chart figcaption strong{font-size:14px;color:var(--text)}
.owner-chart figcaption span{font-size:12px;color:var(--muted)}
.owner-bars{display:flex;align-items:flex-end;gap:2px;height:150px;padding-bottom:20px;border-bottom:1px solid #e3e8e0;position:relative}
.owner-bar{position:relative;flex:1 1 0;min-width:6px;height:100%;display:flex;align-items:flex-end;justify-content:center;outline:none}
.owner-bar i{display:block;width:100%;max-width:22px;border-radius:4px 4px 0 0;background:#2f7a55}
.owner-bar:hover i,.owner-bar:focus-visible i{background:#153e32}
.owner-bar>span{position:absolute;bottom:-18px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.owner-bar>b{position:absolute;top:-2px;font-size:12px;color:var(--text)}
.owner-bars .owner-bar:nth-child(even)>span{visibility:hidden}
.owner-heat{display:grid;grid-template-columns:repeat(auto-fit,minmax(40px,1fr));gap:2px}
.owner-heat>div{position:relative;display:grid;justify-items:center;gap:3px;outline:none}
.owner-heat i{display:block;width:100%;height:34px;border-radius:4px;background:#1f6b4a}
.owner-heat b{font-size:12px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}
.owner-heat span{font-size:11px;color:var(--muted)}
.owner-bar[data-tip]:hover::after,.owner-bar[data-tip]:focus-visible::after,.owner-heat>div[data-tip]:hover::after,.owner-heat>div[data-tip]:focus-visible::after{content:attr(data-tip);position:absolute;z-index:5;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);padding:6px 10px;border-radius:8px;background:#102e26;color:#fff;font-size:12px;white-space:nowrap;pointer-events:none;box-shadow:0 6px 18px #102e2640}
.owner-heat>div[data-tip]:hover::after,.owner-heat>div[data-tip]:focus-visible::after{bottom:auto;top:-34px}
.owner-bar:focus-visible,.owner-heat>div:focus-visible{outline:2px solid #286347;outline-offset:2px;border-radius:4px}
.owner-report-table summary{min-height:44px;display:flex;align-items:center;font-size:13px;font-weight:600;color:#2c5a36;cursor:pointer}
.owner-report-table table{width:100%;border-collapse:collapse;font-size:13px}
.owner-report-table th,.owner-report-table td{padding:8px 10px;border-top:1px solid var(--border);text-align:right;font-variant-numeric:tabular-nums}
.owner-report-table th:first-child{text-align:left}
.owner-report .venue-ops-list li b{font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:900px){.owner-report-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.owner-report-stats>div:last-child{grid-column:auto}}
@media(max-width:760px){.owner-bars .owner-bar>span{font-size:10px}.owner-bars .owner-bar:not(:nth-child(5n+1))>span{visibility:hidden}.owner-bars .owner-bar:nth-child(5n+1)>span{visibility:visible}.owner-bar[data-tip]:hover::after,.owner-bar[data-tip]:focus-visible::after{left:auto;right:0;transform:none}}
@media(prefers-reduced-motion:no-preference){.owner-bar i{transform-origin:bottom;animation:cau-grow .5s cubic-bezier(.16,1,.3,1) both}@keyframes cau-grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}.owner-heat i{animation:cau-fade .5s ease both}.owner-fixed,.owner-report{animation:cau-rise .28s cubic-bezier(.16,1,.3,1) both}}
.owner-bar>b{top:auto}
.owner-bars{padding-top:20px}
.owner-heat i{animation:none!important}
.owner-report>.form-hint{margin:0;font-size:12px}

/* Owner card: price list strip and presets */
.venue-price-strip{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:0 0 12px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:#f8faf6}
.venue-price-strip>div{flex:1;min-width:0}
.venue-price-strip b{display:block;font-size:13px;color:var(--forest);margin-bottom:4px}
.venue-price-strip p{margin:0;font-size:13px;line-height:1.5;color:#5f6f62}
.venue-price-strip ul{list-style:none;margin:0;padding:0;display:grid;gap:3px}
.venue-price-strip li{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:#4b5a4f}
.venue-price-strip li strong{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text)}
.venue-price-strip .button{min-height:44px;flex-shrink:0;font-size:13px}
.price-presets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.price-presets button{display:grid;gap:1px;min-height:44px;padding:6px 14px;border:1px solid var(--border);border-radius:10px;background:#fff;color:#43664a;font:inherit;font-size:13px;font-weight:600;text-align:left;cursor:pointer}
.price-presets button small{font-size:11px;font-weight:400;color:var(--muted)}
.price-presets button.active{background:var(--forest);border-color:var(--forest);color:#fff}
.price-presets button.active small{color:#cfe2c4}
@media(max-width:760px){.venue-price-strip{flex-direction:column}.venue-price-strip .button{width:100%}}

/* Timetable grid: courts as rows, hours as columns; scrolls sideways on narrow screens with the court names pinned. */
.court-grid{--cell:76px;overflow-x:auto;margin-top:6px;padding-bottom:4px;scrollbar-width:thin}
.court-grid-head,.court-grid .court-slot-row{display:grid;grid-template-columns:84px minmax(calc(var(--cols)*var(--cell)),1fr);gap:0;align-items:stretch;margin:0}
.court-grid-head>span,.court-grid .court-row-label{position:sticky;left:0;z-index:2;background:#fff}
.court-grid-head>div{display:grid;grid-template-columns:repeat(var(--cols),minmax(var(--cell),1fr));border-bottom:1px solid var(--border)}
.court-grid-head>div span{padding:4px 6px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;border-left:1px solid var(--border)}
.court-grid .court-slot-row{border-bottom:1px solid var(--border)}
.court-grid .court-row-label{min-width:0;padding:8px 6px 8px 0;align-content:center}
.court-grid-cells{display:grid!important;grid-template-columns:repeat(var(--cols),minmax(var(--cell),1fr));grid-auto-rows:minmax(52px,auto);gap:0!important;background-image:linear-gradient(to right,var(--border) 1px,transparent 1px);background-size:calc(100%/var(--cols)) 100%}
.court-grid-cells .slot{min-width:0!important;max-width:none!important;min-height:52px;margin:3px;padding:6px 4px;border-radius:8px;flex-direction:column;flex-wrap:nowrap;gap:1px;overflow:hidden;font-variant-numeric:tabular-nums}
.court-grid-cells .slot small,.court-grid-cells .slot .slot-booker{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.3}
.court-grid-cells .slot.shift{min-width:0}
@media(max-width:760px){.court-grid{--cell:68px}.court-grid-head,.court-grid .court-slot-row{grid-template-columns:64px minmax(calc(var(--cols)*var(--cell)),1fr)}.court-grid .court-row-label{font-size:12px}}

/* Venue list as full-width rows: photo on the left, details and the timetable on the right, so the grid has room to breathe. */
.venue-grid{grid-template-columns:1fr;gap:18px}
@media(min-width:1180px){
  .venue-card{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr);align-items:stretch}
  .venue-card>.venue-cover{height:100%;min-height:230px;aspect-ratio:auto}
  .venue-card>.venue-body{min-width:0;padding:18px 22px}
  .court-grid{--cell:84px}
  .venue-quick .button{flex:0 1 auto}
  .venue-owner-actions .button{flex:0 1 auto}
}
.venue-card{border-radius:16px;box-shadow:0 1px 2px #173c2808,0 8px 24px #173c2808}
.court-grid-cells .slot.open:not(:disabled):hover{box-shadow:0 0 0 2px #9ccb7a inset}
.court-grid .court-slot-row:hover .court-row-label{color:var(--forest)}
@media(min-width:1180px){
  .venue-card>.venue-cover{align-self:start;height:200px;min-height:0;margin:16px 0 16px 16px;border-radius:12px;width:auto}
  .venue-card{grid-template-columns:300px minmax(0,1fr)}
}

/* Scannable timetable: taken hours read as taken at a glance; a marker shows the current time. */
.slot.booked{background:#fde4e2;border-color:#f1aaa5;color:#8f2b25}
.slot.booked.mine,.slot.pending.mine{background:#dcebff;border-color:#7fa7e8;color:#1b4490}
.slot-legend .slot.booked{background:#fde4e2;border-color:#f1aaa5}
.court-grid-cells .slot .slot-time{font-weight:600}
.court-grid-cells .slot .slot-price{font-weight:500;opacity:.85}
.court-grid-cells{position:relative}
.court-grid[data-now] .court-grid-cells::after{content:"";position:absolute;top:0;bottom:0;left:calc(var(--now)*100%);width:2px;background:#c2410c;border-radius:2px;pointer-events:none;z-index:1}
.court-grid[data-now] .court-grid-head>div{position:relative}
.court-grid[data-now] .court-grid-head>div::after{content:"Bây giờ";position:absolute;bottom:2px;left:calc(var(--now)*100%);transform:translateX(-50%);padding:1px 6px;border-radius:999px;background:#c2410c;color:#fff;font-size:10px;font-weight:700;white-space:nowrap}
.venue-favorite{margin-left:8px;width:36px;height:36px;border:1px solid var(--border);border-radius:50%;background:#fff;color:#9aa397;font-size:18px;line-height:1;vertical-align:middle;cursor:pointer}
.venue-favorite.on{color:#d1365a;border-color:#f3b7c5;background:#fff1f4}
.venue-favorite:focus-visible{outline:2px solid #286347;outline-offset:2px}
.court-selection{background:var(--forest);border-color:var(--forest);color:#fff;padding:14px 16px}
.court-selection strong{color:#fff}
.court-selection p{color:#cfe2c4}
.court-selection>b{display:grid;justify-items:end;color:var(--lime);font-size:19px}
.court-selection>b small{font-size:11px;font-weight:500;color:#cfe2c4}
.court-selection .button{border-color:#ffffff40;background:transparent;color:#fff}
.court-selection .button.primary{background:var(--lime);border-color:var(--lime);color:#173c28;font-weight:700}
@media(prefers-reduced-motion:no-preference){.venue-favorite{transition:transform .15s ease,color .15s ease,background-color .15s ease}.venue-favorite.on{animation:cau-pop .3s cubic-bezier(.16,1,.3,1)}}
.venue-notice{margin:0 0 10px;padding:10px 14px;border-left:4px solid #e0a100;border-radius:8px;background:#fff9e8;color:#6b4e00;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
@media(min-width:1180px){.court-grid{--cell:72px}}
.modal-kept{margin:12px 24px 0;padding:10px 14px;border-radius:10px;background:#fff9e8;border:1px solid #ecc96a;color:#6b4e00;font-size:13px;line-height:1.5}
@media(prefers-reduced-motion:no-preference){.modal-kept{animation:cau-rise .22s cubic-bezier(.16,1,.3,1) both}}

/* Venue settings: one dialog, one tab per job */
.venue-settings-tabs{display:flex;gap:4px;padding:10px 20px 0;border-bottom:1px solid var(--border);overflow-x:auto;position:sticky;top:73px;background:#fff;z-index:1;scrollbar-width:thin}
.venue-settings-tabs button{display:inline-flex;align-items:center;gap:7px;border:0;border-bottom:3px solid transparent;background:none;padding:11px 12px 10px;min-height:46px;font-size:14px;color:#66766a;white-space:nowrap;border-radius:8px 8px 0 0}
.venue-settings-tabs button:hover{background:#f3f7f1;color:#274d33}
.venue-settings-tabs button.active{color:#153e32;font-weight:600;border-bottom-color:var(--green)}
.venue-settings-tabs small{font-size:11px;font-weight:600;line-height:1;padding:4px 7px;border-radius:999px;background:#edf3ea;color:#4b6b4f}
.venue-settings-tabs small.todo{background:#fcf0e1;color:#9a5a1c}
.venue-settings-form{padding-bottom:0}
.venue-settings-save{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:10px;margin:8px -24px 0;padding:14px 24px;background:#fff;border-top:1px solid var(--border)}
.venue-form .form-section,.form-section{font-size:13px;letter-spacing:.4px;text-transform:uppercase;color:#5f7463;margin:6px 0 14px;padding-top:16px;border-top:1px solid var(--border)}
.venue-form .form-section:first-child{border-top:0;padding-top:0}
.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.amenity-picker{border:0;margin:0 0 18px;padding:0;min-width:0}
.amenity-picker legend{font-size:14px;font-weight:500;color:#52634b;padding:0;margin-bottom:8px}
.amenity-picker>div:first-of-type{display:flex;flex-wrap:wrap;gap:8px}
.amenity-picker label{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:8px 13px;border:1px solid #dbe4d4;border-radius:999px;font-size:13px;color:#55654f;background:#fff;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.amenity-picker label:hover{border-color:#9dbd8a}
.amenity-picker label.on{background:#e7f3dc;border-color:#8fb974;color:#27501f;font-weight:600}
.amenity-picker label input{width:15px;height:15px;margin:0}
.amenity-picker label:focus-within{outline:3px solid #79b457;outline-offset:2px}
.amenity-custom{display:flex;gap:8px;margin-top:10px}
.amenity-custom input{flex:1;min-width:0;border:1px solid #dbe4d4;border-radius:8px;min-height:42px;padding:8px 12px;font-size:14px}
.shift-preview{background:#f4f8ef;border:1px solid #dfe9d6;border-radius:10px;padding:12px 14px;margin-bottom:16px}
.shift-preview b{font-size:13px;color:#33562c}
.shift-preview ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.shift-preview li{font-size:12px;font-variant-numeric:tabular-nums;padding:5px 9px;border-radius:6px;background:#fff;border:1px solid #d4e3c8;color:#3f6636}
.venue-open-quick{display:grid;gap:12px;margin:0 24px 24px;padding:16px;border:1px solid #dfe9d6;border-radius:12px;background:#fbfdf8}
.venue-open-quick h3{font-size:15px}
.venue-open-quick p{font-size:13px;color:#5f6f62;margin-top:4px;line-height:1.6}
.venue-open-quick-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.venue-open-quick-actions label{display:flex;align-items:center;gap:8px;font-size:13px;color:#55654f}
.venue-open-quick-actions select{border:1px solid #dbe4d4;border-radius:8px;min-height:42px;padding:8px 10px;background:#fff;font-size:14px}
.venue-open-quick-actions .text-button{min-height:42px}

/* Price list */
.price-week h3,.price-add h3{font-size:15px;margin-bottom:10px}
.price-week h3 small{font-size:12px;font-weight:400;color:#7b8a7d;margin-left:6px}
.price-week-row{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:10px;margin-bottom:8px}
.price-week-row>b{font-size:13px;color:#3c5041}
.price-week-bar{display:flex;gap:2px;min-width:0}
.price-week-bar span{flex:1 1 0;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:1px;padding:7px 8px;min-height:50px;overflow:hidden;white-space:nowrap;background:#e3f0d8;color:#1f3d1c}
.price-week-bar span:first-child{border-radius:8px 0 0 8px}.price-week-bar span:last-child{border-radius:0 8px 8px 0}.price-week-bar span:only-child{border-radius:8px}
.price-week-bar span[data-level="0"]{background:#eef6e6}
.price-week-bar span[data-level="1"]{background:#cfe6bb}
.price-week-bar span[data-level="2"]{background:#8cbf6c}
.price-week-bar span[data-level="3"]{background:#2f6b3a;color:#fff}
.price-week-bar small{font-size:11px;opacity:.85;font-variant-numeric:tabular-nums}
.price-week-bar strong{font-size:13px;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}
.price-week .form-hint{margin-top:10px}
.price-rules li.editing{display:block;background:#fbfdf8}
.price-rule-form{padding:4px 0 0}
.price-rule-form .field{margin-bottom:12px}
.price-rule-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}
.price-add{border:1px dashed #cfdcc6;border-radius:12px;padding:14px 16px}
.price-apply{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:12px;background:#f7f9f3}
.price-apply p{flex:1;font-size:13px;color:#5f6f62;line-height:1.6}

/* Court layout picture */
.venue-layout h3{font-size:15px;margin-bottom:10px}
.venue-layout a{display:block;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#f7f9f6}
.venue-layout img{display:block;width:100%;max-height:420px;object-fit:contain}
.venue-layout .form-hint{margin-top:8px}
.venue-layout-edit{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:16px;align-items:start;margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}
.venue-layout-edit h3{font-size:15px;margin-bottom:8px}
.venue-layout-edit>img,.venue-layout-empty{width:100%;aspect-ratio:4/3;border-radius:12px;border:1px solid var(--border);object-fit:contain;background:#f7f9f6}
.venue-layout-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#8a978b;font-size:13px;border-style:dashed}
.venue-layout-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px}
.venue-layout-actions label{cursor:pointer;position:relative}
.venue-layout-actions input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.venue-layout-actions .text-button{min-height:42px}

/* Map view */
.court-view-toggle{margin-left:auto;margin-right:14px}
.court-view-toggle button{display:inline-flex;align-items:center;gap:6px;min-height:38px}
.venue-map-view{position:relative;margin-bottom:26px}
.venue-map-canvas{height:min(68vh,620px);min-height:380px;background:#e9efe6;z-index:0}
.venue-map-canvas.leaflet-container{font:inherit}
.map-pin-wrap{background:none;border:0}
.map-pin{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:46px;height:30px;padding:0 9px;border-radius:999px;background:#1f6b3f;color:#fff;font-size:14px;font-weight:700;font-style:normal;border:2px solid #fff;box-shadow:0 3px 10px #0d2a1a55;transition:transform .16s cubic-bezier(.16,1,.3,1),background .16s}
.map-pin::after{content:'';position:absolute;left:50%;bottom:-8px;width:10px;height:10px;background:inherit;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:translateX(-50%) rotate(45deg)}
.map-pin.none{background:#7d877f;font-size:12px}
.map-pin-wrap:hover .map-pin,.map-pin-wrap.active .map-pin{transform:scale(1.14);background:#123f26}
.map-pin-wrap.active{z-index:1000!important}
.map-pin-wrap:focus-visible{outline:none}.map-pin-wrap:focus-visible .map-pin{outline:3px solid #79b457;outline-offset:2px}
.venue-map-card{position:absolute;left:16px;bottom:62px;z-index:500;display:flex;width:min(440px,calc(100% - 32px));background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 14px 40px #0d2a1a40;border:1px solid var(--border)}
.venue-map-card-cover{width:120px;flex-shrink:0;background:#1a4736}
.venue-map-card-cover>*{width:100%;height:100%;object-fit:cover;display:block}
.venue-map-card-body{flex:1;min-width:0;padding:14px 40px 14px 14px}
.venue-map-card h3{font-size:16px;overflow-wrap:anywhere}
.venue-map-card p{display:flex;align-items:flex-start;gap:5px;font-size:13px;color:#66766a;margin-top:4px}
.venue-map-card p svg{margin-top:3px}
.venue-map-card-facts{flex-wrap:wrap;gap:4px 10px!important}
.venue-map-card-facts b{color:#1f6b3f}.venue-map-card-facts b.none{color:#8a5a1c}
.venue-map-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.venue-map-card-actions .button{min-height:40px;font-size:13px;padding:8px 12px}
.venue-map-card-close{position:absolute;top:8px;right:8px;width:36px;height:36px}
.venue-map-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;padding:12px 16px;font-size:13px;color:#5f6f62;border-top:1px solid var(--border)}
.venue-map-legend span{display:inline-flex;align-items:center;gap:8px}
.venue-map-legend .map-pin{min-width:34px;height:22px;font-size:11px;box-shadow:none;padding:0 7px}
.venue-map-legend .map-pin::after{display:none}
.venue-map-legend em{font-style:normal;color:#8a5a1c}
.map-me{width:14px;height:14px;border-radius:50%;background:#1d6fd8;border:3px solid #fff;box-shadow:0 0 0 1px #1d6fd8}
.venue-map-error{padding:12px 16px}
.venue-map-empty{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:40px 22px;margin-bottom:26px;color:#66766a}
.venue-map-empty strong{color:#33473a}
.venue-map-empty p{font-size:14px;max-width:420px}
@media(prefers-reduced-motion:no-preference){.venue-map-card{animation:cau-slide-up .26s cubic-bezier(.16,1,.3,1) both}.venue-settings [role=tabpanel]:not([hidden]){animation:cau-fade .18s ease-out both}}
@media(max-width:760px){
  .venue-settings-tabs{padding:6px 10px 0;top:64px}
  .venue-settings-save{margin:8px -16px 0;padding:12px 16px}
  .venue-settings-save .button{flex:1}
  .form-grid.three{grid-template-columns:1fr 1fr}
  .venue-open-quick{margin:0 16px 16px}
  .venue-open-quick-actions .button{flex:1}
  .price-week-row{grid-template-columns:1fr;gap:4px}
  .price-apply{flex-direction:column;align-items:stretch}
  .venue-layout-edit{grid-template-columns:1fr}
  .court-info{flex-wrap:wrap;gap:10px}
  .court-view-toggle{margin:0;order:3;width:100%}
  .court-view-toggle button{flex:1;justify-content:center;min-height:44px}
  .venue-map-canvas{height:60vh;min-height:320px}
  .venue-map-card{position:relative;left:0;bottom:0;width:100%;border-radius:0;border-width:1px 0 0;box-shadow:none}
  .venue-map-card-cover{width:92px}
}
.price-week .form-hint,.venue-ops>.form-hint{font-size:13px;color:#5f6f62;line-height:1.6}
.venue-settings>.modal-error{margin:14px 24px 0}
.venue-layout .form-hint,.venue-week .form-hint{font-size:13px;color:#5f6f62}
.slot-legend[hidden]{display:none}

.owner-view-tabs .tab-count{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:7px;padding:0 6px;border-radius:999px;background:#c2410c;color:#fff;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.court-requests-nudge{display:flex;align-items:center;gap:10px;width:100%;margin:0 0 14px;padding:12px 14px;border:1px solid #f3cfa5;border-radius:12px;background:#fff7ed;color:#7c3a0c;font:inherit;font-size:14px;text-align:left;cursor:pointer;transition:background .15s,border-color .15s}
.court-requests-nudge:hover{background:#ffedd5;border-color:#eab676}
.court-requests-nudge:focus-visible{outline:3px solid #8fc45a;outline-offset:2px}
.court-requests-nudge span{flex:1;min-width:0}
.court-requests-nudge em{font-style:normal;font-weight:700;white-space:nowrap;text-decoration:underline}
@media(max-width:560px){.court-requests-nudge{flex-wrap:wrap}.owner-view-tabs{overflow-x:auto;flex-wrap:nowrap}.owner-view-tabs button{white-space:nowrap}}

.monthly-link{display:flex;align-items:center;gap:10px;width:100%;margin:0 0 12px;padding:10px 12px;border:1px dashed #b9d3a8;border-radius:11px;background:#f6faf1;color:var(--forest);font:inherit;font-size:13.5px;text-align:left;cursor:pointer;transition:background .15s,border-color .15s}
.monthly-link:hover{background:#edf6e4;border-color:#8fc45a}.monthly-link:focus-visible{outline:3px solid #8fc45a;outline-offset:2px}.monthly-link svg{flex-shrink:0}
.monthly-form .court-weekdays{margin-bottom:14px}
.monthly-preview{margin:0 0 16px;padding:14px;border:1px solid #dbe8d2;border-radius:12px;background:#f8faf6;transition:opacity .15s}
.monthly-preview[aria-busy=true]{opacity:.6}
.monthly-preview-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px}
.monthly-preview-head b{font-size:15px;color:var(--forest)}.monthly-preview-head small{font-weight:400;color:#5f6f62}.monthly-preview-head strong{font-size:18px;color:var(--forest);font-variant-numeric:tabular-nums}
.monthly-preview ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px}
.monthly-preview li{display:grid;gap:1px;padding:8px 10px;border:1px solid #cfe2c2;border-radius:10px;background:#fff;font-size:13px}
.monthly-preview li b{font-variant-numeric:tabular-nums}.monthly-preview li span{color:#2c5a36;font-variant-numeric:tabular-nums}
.monthly-preview li.off{border-style:dashed;border-color:#d9dfda;background:#f3f5f3;color:#6b766f}.monthly-preview li.off b{text-decoration:line-through}.monthly-preview li.off span{color:#8a5a2b}
.monthly-preview .form-hint{margin:10px 0 0;font-size:13px}
.court-orders .order-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.order-card{padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:#fff}
.order-card.pending{border-color:#f3cfa5;background:#fffaf4}.order-card.rejected,.order-card.cancelled{background:#f7f8f7;color:#5f6f62}
.order-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.order-head strong{font-size:16px;overflow-wrap:anywhere}.order-sub{margin-left:8px;font-size:13px;color:#5f6f62}
.order-phone{display:inline-flex;align-items:center;gap:4px;margin-left:10px;font-size:14px;font-weight:600;color:var(--green);text-decoration:none;font-variant-numeric:tabular-nums}.order-phone:hover{text-decoration:underline}
.order-badges{display:flex;gap:6px;flex-wrap:wrap}.order-badges .badge{margin:0}
.order-line{margin:6px 0 0;font-size:14px;font-variant-numeric:tabular-nums}
.order-money{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-top:6px;font-size:13px;color:#5f6f62}
.order-money strong{font-size:18px;color:var(--forest);font-variant-numeric:tabular-nums}.order-code{margin-left:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}
.order-dates{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.order-dates li{padding:3px 8px;border:1px solid #dbe8d2;border-radius:999px;background:#f6faf1;font-size:12.5px;font-variant-numeric:tabular-nums}.order-dates li.past{border-color:#e3e7e4;background:#f3f5f3;color:#7b867f}
.order-note{margin:8px 0 0;font-size:13px;color:#5f6f62;overflow-wrap:anywhere}
.order-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}.order-actions .button,.order-actions .text-button{min-height:42px}
.order-wait{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex:1;min-width:200px;margin:10px 0 0;font-size:13px;color:#7c3a0c}.order-actions .order-wait{margin:0}
.order-done{display:flex;align-items:center;gap:6px;margin:10px 0 0;font-size:14px;font-weight:600;color:#216e4e}
.order-pay{margin-top:12px;padding:12px 14px;border:1px solid #dbe8d2;border-radius:12px;background:#f8faf6}
.order-pay h4{display:flex;align-items:center;gap:7px;margin:0 0 8px;font-size:14px;color:var(--forest)}
.order-pay dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:6px 18px;margin:0}
.order-pay dl div{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:34px;border-bottom:1px dashed #dbe8d2;font-size:13.5px}
.order-pay dt{color:#5f6f62}.order-pay dd{display:flex;align-items:center;gap:8px;margin:0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.order-copy{display:inline-flex;align-items:center;gap:3px;min-height:28px;padding:0 8px;border:1px solid #cfe2c2;border-radius:999px;background:#fff;color:var(--green);font:inherit;font-size:12px;cursor:pointer}.order-copy:hover{background:#edf6e4}.order-copy:focus-visible{outline:3px solid #8fc45a;outline-offset:1px}
.order-report{margin:12px 0 0;padding:12px;border:1px solid var(--border);border-radius:12px;background:#fff}.order-report .field{margin-bottom:12px}
.order-proof-preview{display:block;max-width:180px;max-height:220px;margin:0 0 12px;border:1px solid var(--border);border-radius:10px}
.order-closed{margin-top:14px}.order-closed summary{min-height:40px;display:flex;align-items:center;cursor:pointer;font-size:14px;color:#5f6f62}.order-closed .order-list{margin-top:8px}
.order-banks{margin:16px 0}.order-banks h3{display:flex;align-items:center;gap:7px;margin:0 0 8px;font-size:15px;color:var(--forest)}
.owner-orders .court-day-stats small{display:block;font-size:12px;color:#5f6f62}
.owner-orders .compact-filter-bar .tabs .tab-count{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:7px;padding:0 6px;border-radius:999px;background:#c2410c;color:#fff;font-size:12px;font-weight:700}
@media(max-width:560px){.order-code{margin-left:0}.order-actions{justify-content:stretch}.order-actions .button{flex:1}.order-pay dl{grid-template-columns:1fr}}
@media(prefers-reduced-motion:no-preference){.order-card,.monthly-preview li{animation:cau-rise .26s cubic-bezier(.16,1,.3,1) both}}

.badge.blue{background:#e0ecff;color:#1e4a8a}
.court-orders{padding-bottom:20px}
.court-orders>.court-day-stats,.court-orders>.order-list,.court-orders>.order-banks,.court-orders>.compact-filter-bar,.court-orders>.order-closed,.court-orders>p,.court-orders>.empty{margin-left:20px;margin-right:20px}
@media(max-width:560px){.court-orders>.court-day-stats,.court-orders>.order-list,.court-orders>.order-banks,.court-orders>.compact-filter-bar,.court-orders>.order-closed,.court-orders>p,.court-orders>.empty{margin-left:12px;margin-right:12px}}

.pay-step{margin:0 0 16px;padding:14px;border:1px solid #dbe8d2;border-radius:12px;background:#f8faf6}
.pay-step h3{display:flex;align-items:center;gap:7px;margin:0 0 10px;font-size:15px;color:var(--forest)}
.pay-step .form-hint{margin:8px 0 0;font-size:13px}
.pay-info{display:flex;gap:16px;align-items:flex-start;margin-bottom:12px}
.pay-info dl{flex:1;min-width:0;display:grid;gap:4px;margin:0}
.pay-info dl div{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:34px;border-bottom:1px dashed #dbe8d2;font-size:13.5px}
.pay-info dt{color:#5f6f62;white-space:nowrap}.pay-info dd{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:0;text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.pay-qr{display:grid;justify-items:center;gap:4px;flex-shrink:0;text-decoration:none;color:#5f6f62}
.pay-qr img{width:156px;height:156px;object-fit:contain;border:1px solid var(--border);border-radius:12px;background:#fff;transition:transform .18s}
.pay-qr:hover img{transform:scale(1.03)}.pay-qr:focus-visible{outline:3px solid #8fc45a;outline-offset:3px;border-radius:12px}.pay-qr small{font-size:12px}
.proof-input .field{margin-bottom:8px}
.proof-link{font-weight:600;color:var(--green)}
.court-request-proof{margin:3px 0 0;font-size:13px;color:#8a5a2b}
.venue-qr{display:flex;align-items:center;gap:10px;flex-shrink:0}
.venue-qr img,.venue-qr-empty{width:64px;height:64px;border:1px solid var(--border);border-radius:10px;background:#fff;object-fit:contain}
.venue-qr-empty{display:grid;place-items:center;border-style:dashed;font-size:11px;color:#7b867f;text-align:center}
.venue-qr>div{display:grid;gap:2px}.venue-qr .text-button{min-height:32px;cursor:pointer}
@media(max-width:560px){.pay-info{flex-direction:column;align-items:stretch}.pay-qr{align-self:center}.pay-qr img{width:200px;height:200px}}

.month-board{display:grid;gap:14px}
.month-board-venue{display:grid;gap:8px}
.month-board-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;font-size:13px;color:#5f6f62}
.month-board-head b{font-size:14.5px;color:var(--text)}.month-board-head strong{color:var(--forest);font-variant-numeric:tabular-nums}
.month-board .table-wrap{overflow-x:auto;padding-bottom:4px}
.month-board table{border-collapse:separate;border-spacing:2px;font-size:12px;font-variant-numeric:tabular-nums}
.month-board th{font-weight:500;color:#5f6f62;text-align:center;padding:0 0 2px;min-width:26px}
.month-board thead th small{display:block;font-size:10px;line-height:1.1;color:#8a948d}
.month-board thead th.weekend small{color:#b56222}
.month-board thead th.today{color:var(--forest);font-weight:700;box-shadow:inset 0 -2px 0 var(--forest)}
.month-board tbody th{position:sticky;left:0;z-index:1;min-width:56px;padding:0 10px 0 0;background:#fff;text-align:left;font-weight:600;color:var(--text);white-space:nowrap}
.month-board td{width:26px;height:28px;border-radius:6px;text-align:center;font-weight:600;color:#1f3b27;cursor:default}
.month-board td[data-level="0"],.month-board-legend i[data-level="0"]{background:#eef6e6;box-shadow:inset 0 0 0 1px #cfe2c2}
.month-board td[data-level="1"],.month-board-legend i[data-level="1"]{background:#cfe6bb}
.month-board td[data-level="2"],.month-board-legend i[data-level="2"]{background:#8cbf6c}
.month-board td[data-level="3"],.month-board-legend i[data-level="3"]{background:#2f6b3f;color:#fff}
.month-board td.none,.month-board-legend i.none{background:repeating-linear-gradient(135deg,#f1f3f1 0 4px,#e3e7e4 4px 6px)}
.month-board td.past{opacity:.45}
.month-board td:hover{outline:2px solid var(--forest);outline-offset:1px}
.month-board-legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;padding:0;font-size:12.5px;color:#5f6f62}
.month-board-legend li{display:flex;align-items:center;gap:6px}.month-board-legend i{width:16px;height:16px;border-radius:4px;display:block}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.venue-compact{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 0}
.venue-compact ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;flex:1;min-width:0}
.venue-compact li{padding:4px 9px;border:1px solid #b9d3a8;border-radius:999px;background:#edf5e7;color:#2c5a36;font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.venue-compact li small{font-weight:400}.venue-compact li.more{border-style:dashed;background:#fff;font-weight:400;color:#5f6f62}
.venue-compact p{flex:1;min-width:0;margin:0;font-size:13px;color:#8a5a2b}
.venue-compact .button{min-height:40px;margin-left:auto}.venue-compact .text-button{min-height:40px;margin-left:auto}
.venue-grid.compact{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;align-items:start}
.venue-grid.compact .venue-card:not(.collapsed){grid-column:1/-1}
.venue-grid.compact .venue-card.collapsed{display:flex;flex-direction:column}
.venue-grid.compact .venue-card.collapsed>.venue-cover{height:118px;min-height:0;margin:0;border-radius:0;width:100%;align-self:stretch;aspect-ratio:auto}
.venue-card.collapsed .venue-body{padding:12px 14px 14px}
.venue-card.collapsed .venue-title h2{font-size:16px}
.venue-card.collapsed .venue-quick,.venue-card.collapsed .amenities,.venue-card.collapsed .monthly-link,.venue-card.collapsed .slot-header,.venue-card.collapsed .slot-hint,.venue-card.collapsed .court-grid,.venue-card.collapsed .slot-empty,.venue-card.collapsed .venue-notice,.venue-card.collapsed .court-next-open,.venue-card.collapsed .venue-offers{display:none}
.venue-card.collapsed .address{margin:4px 0 0;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.venue-card.collapsed .address a{overflow:hidden;text-overflow:ellipsis}
@media(max-width:560px){.venue-grid.compact{grid-template-columns:1fr}.venue-grid.compact .venue-card.collapsed{display:grid;grid-template-columns:96px minmax(0,1fr)}.venue-grid.compact .venue-card.collapsed>.venue-cover{height:100%;min-height:96px}.venue-card.collapsed .venue-cover-tags,.venue-card.collapsed .venue-cover-deal{display:none}}

.venue-distance{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;background:var(--forest);color:var(--lime);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.venue-distance.on-cover{background:var(--lime);color:var(--forest-deep);box-shadow:0 2px 8px #0003}
.venue-card.collapsed .venue-cover-tags .venue-distance.on-cover{display:none}
@media(min-width:561px){.venue-grid.compact{grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}.venue-grid.compact .venue-card.collapsed>.venue-cover{height:96px}}
.venue-card:not(.collapsed) .venue-heading-tags .venue-distance{display:none}
.venue-card.collapsed .venue-title{flex-wrap:wrap;gap:4px 10px}
.venue-card.collapsed .venue-price-tag strong{font-size:16px}
.month-board table{width:100%;min-width:780px;table-layout:fixed}
.month-board thead th:first-child,.month-board tbody th{width:58px}
.month-board th,.month-board td{padding:0}
.month-board thead th{min-width:0;padding-bottom:3px}
.month-board td{width:auto;height:28px}
@media(max-width:560px){.venue-compact ul,.venue-compact p{flex-basis:100%}.venue-compact .button{width:100%}}

/* Full venue rows: the photo sits beside the venue facts only, and the timetable runs the whole width of the card below it. */
@media(min-width:1180px){
  .venue-grid:not(.compact) .venue-card,.venue-grid.compact .venue-card:not(.collapsed){display:block}
  .venue-grid:not(.compact) .venue-card>.venue-cover,.venue-grid.compact .venue-card:not(.collapsed)>.venue-cover{float:left;width:300px;height:190px;min-height:0;margin:16px 22px 10px 16px;border-radius:12px}
  .venue-grid:not(.compact) .venue-card>.venue-body,.venue-grid.compact .venue-card:not(.collapsed)>.venue-body{display:block;padding:18px 22px}
  .venue-card:not(.collapsed) .venue-body :is(.venue-price-strip,.venue-owner-actions,.venue-owner-todo,.venue-notice,.monthly-link,.venue-compact,.slot-header){clear:both}
  .venue-card:not(.collapsed) .venue-body>.venue-title{min-height:0}
}
/* Side menu shrunk to icons. */
.nav-size-toggle{display:none}
@media(min-width:761px){
  .nav-size-toggle{position:fixed;z-index:25;top:30px;left:238px;display:grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid #2c5a45;border-radius:999px;background:#fff;color:var(--forest);cursor:pointer;box-shadow:0 2px 8px #0002;transition:left .22s cubic-bezier(.16,1,.3,1),transform .22s}
  .nav-size-toggle svg{transform:rotate(180deg);transition:transform .22s}
  .nav-size-toggle:hover{background:var(--lime)}.nav-size-toggle:focus-visible{outline:3px solid #8fc45a;outline-offset:2px}
  .sidebar-refined,.sidebar-refined~.main-shell,.cat-stage{transition:width .22s cubic-bezier(.16,1,.3,1),margin-left .22s cubic-bezier(.16,1,.3,1),inset .22s}
  html[data-nav=mini] .nav-size-toggle{left:58px}html[data-nav=mini] .nav-size-toggle svg{transform:none}
  html[data-nav=mini] .sidebar-refined{width:72px;padding-inline:10px;overflow:visible}
  html[data-nav=mini] .sidebar-refined~.main-shell{margin-left:72px;width:calc(100% - 72px)}
  html[data-nav=mini] .cat-stage{left:72px}
  html[data-nav=mini] .sidebar-refined .brand{font-size:0;padding-inline:8px;gap:0}
  html[data-nav=mini] .sidebar-refined .brand-period,html[data-nav=mini] .sidebar-refined .sidebar-caption,html[data-nav=mini] .sidebar-refined .nav-label,html[data-nav=mini] .sidebar-refined .club-switch>:not(.club-icon),html[data-nav=mini] .sidebar-refined .sidebar-account>:not(.avatar):not(img){display:none}
  html[data-nav=mini] .sidebar-refined .club-switch{min-height:52px;padding:8px;justify-content:center}
  html[data-nav=mini] .sidebar-refined .nav-item{justify-content:center;padding-inline:0;gap:0;position:relative}
  html[data-nav=mini] .sidebar-refined .nav-item .finance-nav-count{position:absolute;top:4px;right:6px;min-width:16px;height:16px;font-size:10px}
  html[data-nav=mini] .sidebar-refined .sidebar-account{justify-content:center;padding-inline:0}
  html[data-nav=mini] .sidebar-refined nav>div+div .nav-item{margin-top:2px}
}
@media(prefers-reduced-motion:reduce){.nav-size-toggle,.nav-size-toggle svg,.sidebar-refined,.sidebar-refined~.main-shell,.cat-stage{transition:none}}

.venue-card:not(.collapsed) .venue-heading-tags .venue-distance{display:inline-flex}
.venue-cover-tags .venue-distance.on-cover{display:none}
.venue-distance.unknown{background:#eef1ee;color:#5f6f62;font-weight:500}
/* Full view for players: two venues a row; a long day of shifts scrolls sideways inside the card. */
@media(min-width:1180px){
  .app-shell[data-page=courts] .venue-grid:not(.compact){grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
  .app-shell[data-page=courts] .venue-grid:not(.compact) .venue-card>.venue-cover{float:none;display:block;width:100%;height:132px;margin:0;border-radius:0}
  .app-shell[data-page=courts] .venue-grid:not(.compact) .venue-card>.venue-body{padding:14px 16px 16px}
  .app-shell[data-page=courts] .venue-grid:not(.compact) .venue-title h2{font-size:18px}
  .app-shell[data-page=courts] .venue-grid:not(.compact) .venue-quick .button{min-height:40px;padding-inline:10px;font-size:13px}
  .app-shell[data-page=courts] .venue-grid:not(.compact) .court-grid{--cell:62px;scrollbar-width:thin}
  .app-shell[data-page=courts] .venue-grid:not(.compact) :is(.court-grid-head,.court-slot-row){grid-template-columns:52px minmax(calc(var(--cols)*var(--cell)),1fr)}
  .app-shell[data-page=courts] .venue-grid:not(.compact) .court-grid-cells{grid-auto-rows:minmax(46px,auto)}
  .app-shell[data-page=courts] .venue-grid:not(.compact) .court-grid .slot{font-size:12px;padding:4px 2px;min-width:0}
  .app-shell[data-page=courts] .venue-grid:not(.compact) .court-grid .slot small{font-size:11px}
  .app-shell[data-page=courts] .venue-grid:not(.compact) .court-row-label{font-size:12px}
}

/* Distance from the player: green when close, amber for a short ride, red when far. */
.venue-distance{gap:6px;padding:3px 10px 3px 4px;border:1px solid #bfe0b0;background:#eaf7e3;color:#1c5a30;font-size:12.5px;font-weight:500;line-height:1.5;box-shadow:none}
.venue-distance b{font-weight:700;font-variant-numeric:tabular-nums}
.venue-distance i{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#2f8a4b;color:#fff;flex-shrink:0}
.venue-distance[data-band=mid]{border-color:#f0d58a;background:#fff6d8;color:#7a5200}.venue-distance[data-band=mid] i{background:#d99a06}
.venue-distance[data-band=far]{border-color:#f3b9b3;background:#fdebe9;color:#9a2a20}.venue-distance[data-band=far] i{background:#d2493d}
.venue-distance:not(:has(i)){padding-left:10px}
.venue-distance.unknown{border-color:#e1e6e2;background:#f3f5f3;color:#5f6f62;padding-left:10px}

.venue-compact .monthly-mini{margin-left:0;gap:6px;border-color:#b9d3a8;background:#f6faf1;color:var(--forest);font-weight:600}
.venue-compact .monthly-mini:hover{background:#edf6e4}
.venue-compact .monthly-mini+.button{margin-left:auto}
.venue-compact ul,.venue-compact p{flex-basis:100%}
.monthly-link{border-style:solid;border-color:#8fc45a;background:#edf6e4;font-size:14px;padding:12px 14px}
.monthly-link b{font-size:14.5px}
.venue-own-note{display:flex;gap:8px;align-items:flex-start;margin:0 0 12px;padding:10px 12px;border:1px dashed #d9dfda;border-radius:11px;background:#f7f8f7;font-size:13px;color:#5f6f62;clear:both}
.venue-own-note svg{flex-shrink:0;margin-top:2px}
.venue-card.collapsed .venue-own-note{display:none}
@media(max-width:560px){.venue-compact .monthly-mini{width:100%}}
/* Month board colours: free is green, filling up is yellow then orange, full is red; the number in each cell repeats the message. */
.month-board td{color:#10261a;font-weight:700;font-size:12.5px}
.month-board td[data-level="0"],.month-board-legend i[data-level="0"]{background:#56b870;box-shadow:none}
.month-board td[data-level="1"],.month-board-legend i[data-level="1"]{background:#f2cc45}
.month-board td[data-level="2"],.month-board-legend i[data-level="2"]{background:#f08a3e}
.month-board td[data-level="3"],.month-board-legend i[data-level="3"]{background:#b8302a;color:#fff}
.month-board td.none,.month-board-legend i.none{background:repeating-linear-gradient(135deg,#f4f5f4 0 4px,#e6e9e6 4px 6px)}
.month-board td.past{opacity:.5}
.month-board td.today{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--forest)}
.month-board table{border-spacing:3px}
.month-board-legend{font-size:13px;color:var(--text)}
.month-board-legend i{width:18px;height:18px;border-radius:5px}

.customer-picker{margin:0 0 16px;padding:14px;border:1px solid var(--border);border-radius:12px;background:#fff;min-width:0}
.customer-picker legend{padding:0 6px;font-size:13px;font-weight:600;color:var(--forest)}
.customer-search{display:flex;align-items:flex-start;gap:10px}.customer-search .field{flex:1;min-width:0;margin-bottom:10px}.customer-search>.button{margin-top:27px;min-height:46px}
.customer-matches{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:8px}
.customer-matches li,.customer-picked{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:1px solid #b9d3a8;border-radius:11px;background:#f6faf1}
.customer-matches strong,.customer-picked strong{display:block;font-size:14.5px}.customer-matches span,.customer-picked span{display:block;font-size:13px;color:#5f6f62;overflow-wrap:anywhere}
.customer-picked{margin-bottom:14px;border-color:#8fc45a;background:#edf6e4}.customer-picked small{display:block;margin-top:2px;font-size:12.5px;color:#2c5a36}
.customer-none{margin:0 0 14px;padding:10px 12px;border:1px dashed #e3c9a5;border-radius:11px;background:#fff9f0;font-size:13px;color:#7c3a0c}
.customer-picker .form-grid .field{margin-bottom:0}
@media(max-width:560px){.customer-search{flex-direction:column}.customer-search>.button{margin-top:0;width:100%}.customer-matches li,.customer-picked{flex-direction:column;align-items:stretch}}

.month-board td button{display:block;width:100%;height:100%;min-height:28px;padding:0;border:0;border-radius:inherit;background:none;color:inherit;font:inherit;cursor:pointer}
.month-board td button:focus-visible{outline:3px solid var(--forest);outline-offset:2px}
.month-board td.picked{box-shadow:0 0 0 2px #fff,0 0 0 4px #10261a;opacity:1}
.court-day{margin-top:4px;padding:14px;border:1px solid var(--border);border-radius:12px;background:#fbfcfb}
.court-day-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.court-day-head strong{display:block;font-size:15px}.court-day-head span{font-size:13px;color:#5f6f62;font-variant-numeric:tabular-nums}
.court-day-head>div:last-child{display:flex;align-items:center;gap:6px;flex-shrink:0}.court-day-head .icon-button{width:34px;height:34px}
.court-day ul{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#fff}
.court-day li{display:grid;grid-template-columns:112px 124px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 12px;border-top:1px solid var(--border);font-size:13.5px}
.court-day li:first-child{border-top:0}
.court-day li b{font-variant-numeric:tabular-nums}.court-day li .badge{margin:0;justify-self:start}
.court-day li>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;min-width:0}.court-day li>div span{color:#5f6f62;overflow-wrap:anywhere}.court-day li>div .muted{color:#7b867f}
.court-day li small{padding:1px 7px;border-radius:999px;background:#eef1ee;font-size:11.5px;color:#4d5a52}
.court-day li em{font-style:normal;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.court-day li[data-state=open]{background:#f6faf1}.court-day li[data-state=blocked]{background:#f5f6f5}
.badge.red{background:#fde4e2;color:#8f2b25}
@media(max-width:560px){.court-day li{grid-template-columns:1fr auto}.court-day li>div{grid-column:1/-1}}
@media(prefers-reduced-motion:no-preference){.court-day{animation:cau-rise .24s cubic-bezier(.16,1,.3,1) both}}

.pay-missing{margin:0 0 12px;padding:10px 12px;border:1px dashed #e3c9a5;border-radius:11px;background:#fff9f0;font-size:13.5px;color:#7c3a0c}
.pay-missing a{font-weight:700;color:inherit}
.venue-owner-todo .text-button{min-height:0;padding:0;font-weight:700;text-decoration:underline}

.hold-first,.hold-done{margin:0 0 16px;padding:11px 13px;border-radius:11px;font-size:13.5px;line-height:1.55}
.hold-first{border:1px solid #cfe2c2;background:#f4f9ee;color:#2c5a36}
.hold-done{border:1px solid #8fc45a;background:#e9f6dc;color:#1c5a30}
.booking-actions .pay-later{font-weight:700;color:#8a4b00}

.hold-clock{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border:1px solid #f0d58a;border-radius:999px;background:#fff6d8;color:#7a5200;font-size:13px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}
.hold-clock b{font-size:14px;font-weight:700}
.hold-clock[data-low]{border-color:#f3b9b3;background:#fdebe9;color:#9a2a20}
.hold-clock[data-over]{border-color:#d9dfda;background:#f1f3f1;color:#5f6f62}
.hold-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 16px;padding:11px 13px;border:1px solid #f0d58a;border-radius:11px;background:#fffaea;font-size:13.5px;line-height:1.55;color:#5c4300}
.hold-banner p{margin:0;flex:1;min-width:0}.hold-banner .hold-clock{font-size:15px;padding:6px 14px}.hold-banner .hold-clock b{font-size:20px}
.hold-banner.over{border-color:#f3b9b3;background:#fdebe9;color:#8f2b25}
.hold-warning{margin:0 0 10px;font-size:13px;color:#7a5200}
.order-pay h4 .hold-clock{margin-left:auto}
.booking-actions .hold-clock{margin-right:2px}
.fake-report-open{min-height:42px}
.fake-report{flex-basis:100%;width:100%;margin:8px 0 0;padding:12px;border:1px solid #f3b9b3;border-radius:12px;background:#fff8f7;text-align:left}
.fake-report .field{margin-bottom:10px}
.court-request-actions{flex-wrap:wrap;justify-content:flex-end}
@media(max-width:560px){.hold-banner{flex-direction:column;align-items:stretch}.hold-banner .hold-clock{justify-content:center}}
@media(prefers-reduced-motion:no-preference){.hold-clock[data-low] b{animation:cau-pulse 1s ease-in-out infinite}@keyframes cau-pulse{50%{opacity:.55}}}

.system-reports{padding:0 24px 24px;display:grid;gap:14px}
.system-reports>.form-hint{margin:0;font-size:13px;color:#5f6f62;line-height:1.6}
.report-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.report-card{padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:#fff}
.report-card.open{border-color:#f3cfa5;background:#fffaf4}
.report-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.report-head strong{display:block;font-size:16px}.report-head span{font-size:13px;color:#5f6f62;font-variant-numeric:tabular-nums}
.report-badges{display:flex;gap:6px;flex-wrap:wrap}.report-badges .badge{margin:0}
.report-facts{display:grid;gap:0;margin:10px 0 0;border-top:1px solid var(--border)}
.report-facts div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;padding:7px 0;border-bottom:1px dashed var(--border);font-size:13.5px}
.report-facts dt{color:#5f6f62}.report-facts dd{margin:0;overflow-wrap:anywhere}
.report-facts .report-repeat{color:#9a2a20;font-weight:600}
.report-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}
.report-actions .button{min-height:42px}.report-actions a.button{margin-right:auto;text-decoration:none}
.report-noproof{margin-right:auto;font-size:13px;color:#7b867f}
.system-account-row .text-button{min-height:32px}
@media(max-width:560px){.system-reports{padding:0 12px 16px}.report-facts div{grid-template-columns:1fr;gap:2px}.report-actions .button{flex:1}}
@media(prefers-reduced-motion:no-preference){.report-card{animation:cau-rise .26s cubic-bezier(.16,1,.3,1) both}}

.audit-facts{display:grid;gap:0;margin:8px 0 4px}
.audit-facts div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;padding:6px 0;border-bottom:1px dashed var(--border);font-size:13.5px}
.audit-facts dt{color:#5f6f62}.audit-facts dd{margin:0;overflow-wrap:anywhere}
@media(max-width:560px){.audit-facts div{grid-template-columns:1fr;gap:2px}}
/* login */
.auth-page{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(60% 55% at 12% 88%,#2b5a43 0,transparent 70%),radial-gradient(45% 40% at 92% 6%,#1d4a3a 0,transparent 70%),#0d2720}
.auth-intro,.auth-card{position:relative;z-index:1}
.auth-brand{margin-bottom:clamp(28px,6vh,64px)}
.auth-features{list-style:none;margin:30px 0 0;padding:0;display:grid;gap:12px;max-width:470px}
.auth-features li{display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;align-items:center;padding:12px 14px;border:1px solid #ffffff1a;border-radius:14px;background:#ffffff0a;backdrop-filter:blur(6px)}
.auth-features svg{box-sizing:content-box;padding:10px;border-radius:10px;background:#d0f68a1f;color:#d0f68a}
.auth-features span{font-size:13px;line-height:1.55;color:#b9cdbd}.auth-features b{display:block;font-size:14.5px;color:#f1f7ec;font-weight:650}
.auth-scene{position:absolute;inset:0;z-index:0;pointer-events:none}
.auth-scene svg{position:absolute;left:0;bottom:0;width:62%;height:78%;opacity:.5}
.auth-scene-court path{fill:none;stroke:#8fc79a;stroke-width:1.6;opacity:.34}
.auth-scene-court path:first-child{fill:#d0f68a0a}
.auth-scene-arc{fill:none;stroke:#d0f68a;stroke-width:1.4;stroke-dasharray:3 9;opacity:.4}
.auth-scene-shuttle{position:absolute;left:0;top:0;color:#d0f68a;opacity:.9;offset-path:path('M90 520 Q360 40 660 470');offset-rotate:auto 45deg;animation:auth-rally 5.5s cubic-bezier(.45,.05,.4,1) infinite alternate}
@keyframes auth-rally{from{offset-distance:0%}to{offset-distance:100%}}
.auth-card{border:1px solid #ffffffb3;box-shadow:0 30px 80px #0006,0 0 0 8px #ffffff0d;animation:auth-rise .5s cubic-bezier(.2,.7,.2,1) both}
@keyframes auth-rise{from{opacity:0;transform:translateY(14px)}}
.auth-card .google-login-top{margin:0 0 20px}.auth-card .google-button{display:flex;justify-content:center;min-height:44px}.auth-card .google-button.hidden{display:none}
.auth-divider{display:flex;align-items:center;gap:12px;margin-top:20px;color:#7b8a79;font-size:12px}.auth-divider::before,.auth-divider::after{content:"";flex:1;height:1px;background:#e1e7da}
.auth-password{position:relative;display:block}.auth-card .auth-password input{padding-right:64px}
.auth-reveal{position:absolute;right:6px;top:50%;transform:translateY(-50%);min-height:36px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:#2f6a48;font:inherit;font-size:13px;font-weight:650;cursor:pointer}.auth-reveal:hover{background:#eef4e6}
.auth-card .form>.button.primary{font-size:15px;border-radius:12px;transition:transform .15s,box-shadow .15s}.auth-card .form>.button.primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 22px #173f3040}
.auth-card .auth-note{display:flex;gap:8px;align-items:flex-start;margin-top:20px;color:#6b7b69;line-height:1.6}.auth-card .auth-note svg{flex:none;margin-top:3px;color:#2f6a48}
@media(max-width:760px){.auth-features{display:none}.auth-scene svg{width:140%;height:46%;opacity:.35}.auth-scene-shuttle{display:none}.auth-brand{margin-bottom:22px}}
@media(prefers-reduced-motion:reduce){.auth-scene-shuttle,.auth-card{animation:none}.auth-scene-shuttle{offset-distance:62%}}
.auth-card .google-login-top{border-top:0;padding-top:0}
/* smoother motion: no vertical nudge on page/tab changes, no sideways shift when a scrollbar appears */
html{scrollbar-gutter:stable}
@keyframes cau-page-fade{from{opacity:.6}to{opacity:1}}
.main-content{animation:cau-page-fade .16s ease-out}
@media(prefers-reduced-motion:reduce){.main-content{animation:none}}
.auth-card .auth-legal{margin:12px 0 0;font-size:12px;line-height:1.6;color:#7b8a79}.auth-card .auth-legal a{color:#2f6a48}
/* feedback entry point for the trial */
.feedback-fab{position:fixed;right:18px;bottom:max(18px,env(safe-area-inset-bottom));z-index:37;display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:0 16px;border-radius:999px;background:#153e32;color:#eaf6dc;font-size:13px;font-weight:650;text-decoration:none;box-shadow:0 8px 22px #0c2a2140;transition:transform .15s,box-shadow .15s}
.feedback-fab:hover{transform:translateY(-1px);box-shadow:0 12px 26px #0c2a2155;color:#fff}
.feedback-fab span{color:#d0f68a;font-size:15px}
.app-footer a.credits-link{color:inherit;text-decoration:underline;margin-right:8px}
@media(max-width:760px){.feedback-fab{right:12px;bottom:max(78px,calc(env(safe-area-inset-bottom) + 70px));min-height:38px;padding:0 13px;font-size:12px}}
@media print{.feedback-fab{display:none}}
/* sit beside the mascot's paw button instead of under it, and above the walking cat */
.feedback-fab{right:76px;bottom:max(20px,env(safe-area-inset-bottom));z-index:40}
@media(max-width:760px){.feedback-fab{right:12px;bottom:max(84px,calc(env(safe-area-inset-bottom) + 76px))}}
.temporary-password{display:block;padding:16px;border:1px dashed #9fc48a;border-radius:12px;background:#f3f9ea;font:700 22px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:1px;text-align:center;user-select:all}
.change-password{padding:16px;border:1px solid var(--border);border-radius:12px;background:#fafcf7;width:100%}.change-password h3{margin:0 0 12px;font-size:15px}
/* no group yet */
html[data-nogroup] .club-switch small{display:none}
.clubs-welcome{padding:28px}.clubs-welcome h2{margin:8px 0 10px;font-size:24px}.clubs-welcome p{max-width:640px;line-height:1.75;color:#4d5f52}.clubs-welcome ul{margin:14px 0 22px;padding-left:20px;display:grid;gap:8px;max-width:640px;line-height:1.65}.clubs-welcome .wallet-actions{flex-wrap:wrap}
/* Onboarding: first-visit guide, group starter checklist, new-member tips */
.onboard{display:grid;gap:18px}
.onboard-head h2{margin:8px 0 6px;font-size:26px;line-height:1.25}.onboard-head p{margin:0;color:#4d5f52;line-height:1.7}
.onboard-paths{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:16px;align-items:start}
.onboard-path{position:relative;padding:24px;border:1px solid #dfe8dc;border-radius:20px;background:#fff}
.onboard-path h3{margin:0 0 6px;font-size:19px}.onboard-path>p{margin:0 0 16px;color:#4d5f52;line-height:1.65}
.onboard-path-lead{border-color:#b9dc7c;background:linear-gradient(180deg,#f6fbe9,#fff 46%);box-shadow:0 14px 34px #1f4d2b14}
.onboard-tag{display:inline-block;margin-bottom:10px;padding:4px 11px;border-radius:999px;background:#153e32;color:#d9f79c;font-size:12px;font-weight:700;letter-spacing:.02em}
.onboard-steps{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:12px}
.onboard-steps li{display:grid;grid-template-columns:26px 1fr;gap:10px;align-items:start;line-height:1.6}
.onboard-steps li>span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#eaf3e4;color:#1f5a3a;font-size:13px;font-weight:700}
.onboard-steps a{font-weight:650;color:#1f6a45}
.onboard-copy{display:inline-flex;align-items:center;gap:8px;margin:6px 0 0;padding:5px 6px 5px 12px;border:1px dashed #9fc59b;border-radius:999px;background:#f4faf0;color:#153e32;font:inherit;font-weight:700;cursor:pointer}
.onboard-copy small{padding:2px 9px;border-radius:999px;background:#153e32;color:#fff;font-size:11px;font-weight:650}
.onboard-copy:hover{background:#eaf5e3}
.onboard-unlocks{list-style:none;margin:0 0 20px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
.onboard-unlocks li{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start}
.onboard-unlocks i{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#e4f2d0;color:#1f5a3a}
.onboard-unlocks b{display:block;font-size:14px}.onboard-unlocks small{display:block;margin-top:2px;color:#566a5b;font-size:12.5px;line-height:1.5}
.onboard-form{margin-top:4px;padding:16px;border-radius:14px;background:#fff;border:1px solid #dfe8dc}
.onboard .wallet-actions{flex-wrap:wrap}
.starter{margin:0 0 18px;padding:18px 20px;border:1px solid #cfe3b4;border-radius:18px;background:linear-gradient(180deg,#f7fbec,#fff 70%);animation:cau-page-fade .2s ease-out}
.starter>header{display:flex;align-items:center;gap:14px;margin-bottom:12px}.starter>header>div:first-child{flex:1;min-width:0}
.starter h2{margin:4px 0 0;font-size:18px}
.starter-progress{display:flex;gap:5px}.starter-progress i{width:26px;height:6px;border-radius:99px;background:#dbe6d3}.starter-progress i[data-done]{background:#5fae3d}
.starter-close{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:#5b6d60;cursor:pointer}.starter-close:hover{background:#e9f1e2;color:#153e32}
.starter ol{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.starter ol li{display:grid;grid-template-columns:28px 1fr auto;gap:12px;align-items:center;padding:10px 8px;border-radius:12px}
.starter ol li[data-next]{background:#fff;box-shadow:0 0 0 1px #d6e6c4}
.starter-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1.5px solid #bcd1b3;color:#3d5a45;font-size:13px;font-weight:700}
.starter li[data-done] .starter-mark{border-color:#5fae3d;background:#5fae3d;color:#fff}
.starter li b{display:block;font-size:14.5px}.starter li small{display:block;color:#566a5b;font-size:12.5px;line-height:1.5}
.starter li[data-done] b{color:#6c7d70;text-decoration:line-through;text-decoration-color:#a9bba9}.starter li[data-done] small{display:none}
.starter ol .button{min-height:36px;white-space:nowrap}
.member-tips{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.member-tips a{display:block;height:100%;padding:12px 14px;border-radius:12px;background:#fff;box-shadow:0 0 0 1px #dbe8cf;color:inherit;text-decoration:none;transition:box-shadow .15s,transform .15s}
.member-tips a:hover{box-shadow:0 0 0 1px #9fc59b,0 8px 18px #1f4d2b14;transform:translateY(-1px)}
.member-tips b{display:block;font-size:14px;color:#153e32}.member-tips small{display:block;margin-top:3px;color:#566a5b;font-size:12.5px;line-height:1.5}
@media(max-width:900px){.onboard-paths{grid-template-columns:1fr}.onboard-path-lead{order:-1}}
@media(max-width:640px){.onboard-head h2{font-size:21px}.onboard-path{padding:18px}.onboard-unlocks,.member-tips{grid-template-columns:1fr}.starter{padding:14px}.starter-progress{display:none}.starter ol li{grid-template-columns:28px 1fr;}.starter ol .button{grid-column:2;justify-self:start}}
@media(prefers-reduced-motion:reduce){.starter{animation:none}.member-tips a{transition:none}}
