:root {
  --mp-color-brand: var(--red, #D42020);
  --mp-color-brand-hover: var(--red-dark, #B81C1C);
  --mp-color-brand-active: var(--red-active, #951818);
  --mp-color-brand-light: var(--red-light, #F6D6D6);
  --mp-color-brand-muted: rgba(212, 32, 32, 0.12);
  --mp-color-accent: var(--accent, #C5900A);
  --mp-color-accent-dark: var(--accent-dark, #9E7308);
  --mp-color-accent-light: var(--accent-light, #FDF3DC);
  --mp-color-accent-text: var(--accent-text, #7A5906);
  --mp-color-text: var(--text, #1C1C1E);
  --mp-color-text-2: var(--text-2, #3A3A3C);
  --mp-color-muted: var(--text-muted, #8E8E93);
  --mp-color-surface: var(--bg-card, #FFFFFF);
  --mp-color-surface-alt: #F5F3EE;
  --mp-color-surface-muted: #F2EFE9;
  --mp-color-border: rgba(0, 0, 0, 0.07);
  --mp-color-border-soft: rgba(0, 0, 0, 0.06);
  --mp-font-ui: var(--font-ui, 'Barlow', system-ui, -apple-system, sans-serif);
  --mp-font-body: var(--font-body, 'DM Sans', system-ui, -apple-system, sans-serif);
  --mp-font-brand: var(--font-brand, 'Draper', 'Barlow', sans-serif);
  --mp-space-1: 4px;
  --mp-space-2: 8px;
  --mp-space-3: 12px;
  --mp-space-4: 16px;
  --mp-space-5: 20px;
  --mp-space-6: 24px;
  --mp-radius: 8px;
  --mp-radius-lg: 10px;
  --mp-radius-pill: 20px;
  --mp-shadow: 0 2px 12px rgba(0, 0, 0, 0.07);
  --mp-shadow-lg: 0 6px 28px rgba(0, 0, 0, 0.11);
  --mp-shadow-dropdown: 0 8px 32px rgba(0, 0, 0, 0.12);
  --mp-transition: 0.15s ease;
  --mp-status-active: #34C759;
  --mp-status-pending: #FF9500;
  --mp-status-expired: #8E8E93;
  --mp-status-external: #007AFF;
  --mp-status-deceased: #FF3B30;
  --sp-fussball: #3A6644;
  --sp-tischtennis: #5A6A7A;
  --sp-akrobatik: #7A3A8A;
  --sp-gymnastik: #3A6644;
  --sp-kegeln: #5A6A7A;
  --sp-volleyball: #2D5C9A;
  --sp-reitsport: #8A5018;
  --sp-basketball: #C07428;
}

body.page-member-portal .container > .row,
body.page-member-portal .row .row,
body.page-member-portal .row > div,
body.page-member-portal .row .col-lg-12,
body.page-member-portal .row .col-md-12 {
  background: var(--mp-color-surface) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.page-member-portal {
  font-family: var(--mp-font-body);
}

.member-portal {
  font-family: var(--mp-font-body);
  color: var(--mp-color-text);
  background: var(--mp-color-surface);
  border-radius: var(--mp-radius);
  padding: 1rem 1.25rem;
  isolation: isolate;
  position: relative;
  z-index: 100;
}

.member-portal :where(p, span, label, h1, h2, h3, h4, h5, h6, a, button, input, select, textarea, td, th, li) {
  font-family: inherit;
}

.member-portal h1, .member-portal h2, .member-portal h3,
.member-portal h4, .member-portal h5, .member-portal h6 {
  font-family: var(--mp-font-ui);
}

.member-portal i.fas, .member-portal i.fa-solid {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900;
}

.member-portal i.far, .member-portal i.fa-regular {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 400;
}

.member-portal i.fab, .member-portal i.fa-brands {
  font-family: "Font Awesome 6 Brands" !important;
  font-weight: 400;
}

.member-portal h2 i,
.member-portal h3 i,
.member-portal h4 i,
.member-portal label i,
.member-portal .card-header i {
  margin-right: 6px;
}

.member-portal .card {
  background: var(--mp-color-surface);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: 1px solid var(--mp-color-border-soft);
}

.member-portal .card-header {
  background: var(--mp-color-surface-alt);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  font-weight: 600;
}

.event-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.event-list__item {
  display: flex;
  align-items: flex-start;
  gap: var(--mp-space-3);
  padding: var(--mp-space-3) 0;
}
.event-list__item + .event-list__item {
  border-top: 1px solid var(--mp-color-border-soft);
}

.event-list__icon {
  width: 20px;
  flex-shrink: 0;
  text-align: center;
  color: var(--mp-color-accent-text);
  line-height: 1.5;
}

.event-list__body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.event-list__when {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  font-size: 14px;
}

.event-list__what {
  font-size: 14px;
}

.event-list__where {
  font-size: 12px;
  color: var(--mp-color-muted);
}

.event-pager {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}

.event-pager__viewport {
  flex: 1;
  min-height: 280px;
  overflow: hidden;
  mask-image: linear-gradient(to bottom, #000 calc(100% - 28px), transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 28px), transparent 100%);
  position: relative;
}

.event-pager__viewport .event-list {
  position: absolute;
  inset: 0 0 auto 0;
}

.event-pager__viewport .event-list {
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
  .event-pager__viewport .event-list {
    transition: none;
  }
}
.event-pager__nav {
  display: flex;
  justify-content: flex-end;
  gap: var(--mp-space-2);
  padding-top: var(--mp-space-2);
  border-top: 1px solid var(--mp-color-border-soft);
}

.event-pager__btn {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--mp-color-border);
  border-radius: var(--mp-radius);
  background: transparent;
  color: var(--mp-color-text);
  cursor: pointer;
}
.event-pager__btn:hover:not(:disabled) {
  background: var(--mp-color-brand-light);
}
.event-pager__btn:disabled {
  opacity: 0.35;
  cursor: default;
}
.event-pager__btn:focus-visible {
  outline: 2px solid var(--mp-color-brand);
  outline-offset: 1px;
}

.member-portal .btn-danger {
  background-color: var(--mp-color-brand);
  border-color: var(--mp-color-brand);
}

.member-portal .btn-danger:hover {
  background-color: var(--mp-color-brand-hover);
  border-color: var(--mp-color-brand-hover);
}

.member-portal .btn-outline-danger {
  color: var(--mp-color-brand);
  border-color: var(--mp-color-brand);
}

.member-portal .btn-outline-danger:hover {
  background-color: var(--mp-color-brand);
  color: #fff;
}

.member-portal .btn.btn-outline-secondary:hover,
.member-portal .btn.btn-outline-secondary:focus,
.member-portal a.btn.btn-outline-secondary:hover,
.member-portal a.btn.btn-outline-secondary:focus {
  background: var(--mp-color-brand);
  border-color: var(--mp-color-brand);
  color: #fff;
}

.member-portal .btn.btn-outline-secondary:hover i,
.member-portal a.btn.btn-outline-secondary:hover i {
  color: #fff;
}

.member-portal .btn-link:hover i,
.member-portal .btn-link:focus i {
  color: var(--mp-color-brand);
}

.member-portal .btn:focus {
  box-shadow: none;
}

.member-portal .btn:focus-visible,
.member-portal button[type=submit]:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--mp-color-brand-muted);
}

.member-portal .btn-sm {
  min-height: 44px;
}

.member-portal input[type=checkbox],
.facet-menu input[type=checkbox] {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  width: 16px;
  height: 16px;
  min-width: 16px;
  border: 1.5px solid #adb5bd;
  border-radius: 3px;
  background: #fff;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  transition: all 0.12s ease;
  vertical-align: middle;
}

.member-portal input[type=checkbox]:hover,
.facet-menu input[type=checkbox]:hover {
  border-color: var(--mp-color-brand);
}

.member-portal input[type=checkbox]:checked,
.facet-menu input[type=checkbox]:checked {
  background: var(--mp-color-brand);
  border-color: var(--mp-color-brand);
}

.member-portal input[type=checkbox]:checked::after,
.facet-menu input[type=checkbox]:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 4px;
  height: 8px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: translate(-50%, -60%) rotate(45deg);
}

.member-portal input[type=checkbox]:focus-visible,
.facet-menu input[type=checkbox]:focus-visible {
  outline: 2px solid var(--mp-color-brand);
  outline-offset: 1px;
}

.member-portal select,
.member-portal .form-select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 12px 9px;
  padding-right: 34px;
}

.member-portal select:not([multiple]):not([size]) {
  height: calc(1.5em + 0.75rem + 2px);
}

.member-portal select[multiple],
.member-portal select[size]:not([size="1"]) {
  background-image: none;
  padding-right: 12px;
}

.member-portal .mp-check {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
  cursor: pointer;
}
.member-portal .mp-check input[type=checkbox],
.member-portal .mp-check input[type=radio] {
  flex: 0 0 auto;
  margin: 0;
}
.member-portal .mp-check span {
  min-width: 0;
}

.status-badge {
  display: inline-block;
  padding: 0.2rem 0.55rem;
  border-radius: 4px;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  white-space: nowrap;
  color: #fff;
}

.status-badge--active {
  background: var(--mp-status-active);
  color: #0A3D1A;
}

.status-badge--pending,
.status-badge--grace {
  background: var(--mp-status-pending);
  color: #5A3200;
}

.status-badge--expired {
  background: var(--mp-status-expired);
  color: #fff;
}

.status-badge--external {
  background: var(--mp-status-external);
  color: #fff;
}

.status-badge--deceased {
  background: var(--mp-status-deceased);
  color: #fff;
}

.status-badge--passive {
  background: #E4E6EA;
  color: #495057;
}

.role-badge {
  display: inline-block;
  padding: 0.18rem 0.5rem;
  margin: 0.1rem 0.2rem 0.1rem 0;
  border-radius: 4px;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  background: #495057;
  color: #fff;
}

.role-badge--leadership {
  background: var(--mp-color-text);
}

.role-badge--coach {
  background: var(--mp-status-active);
}

.role-badge--treasurer {
  background: var(--mp-color-brand);
}

body.page-member-portal .badge,
.member-portal .badge {
  font-weight: 600;
  letter-spacing: 0.01em;
  color: #fff !important;
}

body.page-member-portal .badge.bg-success,
body.page-member-portal .badge.text-bg-success,
.member-portal .badge.bg-success,
.member-portal .badge.text-bg-success {
  background-color: var(--mp-status-active) !important;
  color: #0A3D1A !important;
}

body.page-member-portal .badge.bg-warning,
body.page-member-portal .badge.text-bg-warning,
.member-portal .badge.bg-warning,
.member-portal .badge.text-bg-warning {
  background-color: var(--mp-status-pending) !important;
  color: #5A3200 !important;
}

body.page-member-portal .badge.bg-danger,
body.page-member-portal .badge.text-bg-danger,
.member-portal .badge.bg-danger,
.member-portal .badge.text-bg-danger {
  background-color: var(--mp-color-brand) !important;
}

body.page-member-portal .badge.bg-primary,
body.page-member-portal .badge.text-bg-primary,
.member-portal .badge.bg-primary,
.member-portal .badge.text-bg-primary {
  background-color: var(--mp-status-external) !important;
}

body.page-member-portal .badge.bg-secondary,
body.page-member-portal .badge.text-bg-secondary,
.member-portal .badge.bg-secondary,
.member-portal .badge.text-bg-secondary {
  background-color: #5856d6 !important;
}

body.page-member-portal .badge.bg-info,
body.page-member-portal .badge.text-bg-info,
.member-portal .badge.bg-info,
.member-portal .badge.text-bg-info {
  background-color: #5ac8fa !important;
}

body.page-member-portal .badge.bg-light,
body.page-member-portal .badge.text-bg-light,
.member-portal .badge.bg-light,
.member-portal .badge.text-bg-light {
  background-color: var(--mp-color-surface-alt) !important;
  color: var(--mp-color-text) !important;
  border: 1px solid var(--mp-color-border) !important;
}

body.page-member-portal .badge.bg-dark,
body.page-member-portal .badge.text-bg-dark,
.member-portal .badge.bg-dark,
.member-portal .badge.text-bg-dark {
  background-color: var(--mp-color-text) !important;
}

body.page-member-portal .alert.alert-success,
.member-portal .alert.alert-success {
  background: var(--mp-status-active) !important;
  border: 1px solid var(--mp-status-active) !important;
  color: #fff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: 0 2px 8px rgba(52, 199, 89, 0.25) !important;
}

body.page-member-portal .alert.alert-danger,
.member-portal .alert.alert-danger {
  background: var(--mp-color-brand) !important;
  border: 1px solid var(--mp-color-brand) !important;
  color: #fff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: 0 2px 8px var(--mp-color-brand-muted) !important;
}

body.page-member-portal .alert.alert-info,
.member-portal .alert.alert-info {
  background: var(--mp-status-external) !important;
  border: 1px solid var(--mp-status-external) !important;
  color: #fff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.page-member-portal .alert .btn-close,
.member-portal .alert .btn-close {
  filter: brightness(0) invert(1);
  opacity: 0.8;
}

.member-portal .members-table thead, .member-portal .admin-table thead, .member-portal .role-matrix thead, .member-portal .responsive-stack thead {
  display: none;
}
.member-portal .members-table tbody tr, .member-portal .admin-table tbody tr, .member-portal .role-matrix tbody tr, .member-portal .responsive-stack tbody tr {
  display: block;
  border: 1px solid var(--mp-color-border-soft);
  border-radius: 8px;
  margin-bottom: 0.5rem;
  padding: 0.5rem 0.75rem;
  background: var(--mp-color-surface);
}
.member-portal .members-table tbody td, .member-portal .admin-table tbody td, .member-portal .role-matrix tbody td, .member-portal .responsive-stack tbody td {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.25rem 0;
  border: none;
}
.member-portal .members-table tbody td[data-label]::before, .member-portal .admin-table tbody td[data-label]::before, .member-portal .role-matrix tbody td[data-label]::before, .member-portal .responsive-stack tbody td[data-label]::before {
  content: attr(data-label);
  font-size: 0.7rem;
  color: var(--mp-color-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-right: 0.75rem;
}
.member-portal .members-table tbody td.actions,
.member-portal .admin-table tbody td.actions,
.member-portal .responsive-stack tbody td.actions {
  justify-content: flex-end;
  border-top: 1px solid var(--mp-color-border-soft);
  padding-top: 0.4rem;
  margin-top: 0.25rem;
}
.member-portal .table-responsive {
  overflow-x: visible;
}

@media (min-width: 768px) {
  .member-portal .members-table thead, .member-portal .admin-table thead, .member-portal .role-matrix thead, .member-portal .responsive-stack thead {
    display: table-header-group;
  }
  .member-portal .members-table tbody tr, .member-portal .admin-table tbody tr, .member-portal .role-matrix tbody tr, .member-portal .responsive-stack tbody tr {
    display: table-row;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    border-color: var(--mp-color-border-soft);
    transition: background-color 0.1s ease;
  }
  .member-portal .members-table tbody td, .member-portal .admin-table tbody td, .member-portal .role-matrix tbody td, .member-portal .responsive-stack tbody td {
    display: table-cell;
    padding: 0.6rem 0.75rem;
    vertical-align: middle;
    border-bottom: 1px solid var(--mp-color-border-soft);
  }
  .member-portal .members-table tbody td[data-label]::before, .member-portal .admin-table tbody td[data-label]::before, .member-portal .role-matrix tbody td[data-label]::before, .member-portal .responsive-stack tbody td[data-label]::before {
    content: none;
  }
  .member-portal .admin-table th,
  .member-portal .members-table thead th {
    background: var(--mp-color-surface-alt);
    border-bottom: 2px solid var(--mp-color-border);
    font-weight: 500;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--mp-color-muted);
    padding: 0.6rem 0.75rem;
  }
  .member-portal .members-table tbody tr:hover,
  .member-portal .admin-table tbody tr:hover {
    background: var(--mp-color-brand-light);
  }
  .member-portal .members-table tbody td.actions,
  .member-portal .admin-table tbody td.actions,
  .member-portal .responsive-stack tbody td.actions {
    justify-content: initial;
    border-top: 0;
    padding-top: 0.6rem;
    margin-top: 0;
  }
}
.member-portal .accordion-item {
  border: 1px solid var(--mp-color-border-soft);
  margin-bottom: 4px;
  border-radius: var(--mp-radius) !important;
  overflow: hidden;
  background: var(--mp-color-surface);
}

.member-portal .accordion-button {
  font-family: inherit;
  font-size: 15px;
  padding: 14px 20px;
  background: transparent;
}

.member-portal .accordion-button:not(.collapsed) {
  background: var(--mp-color-brand-light);
  color: var(--mp-color-text);
  box-shadow: none;
}

.member-portal .accordion-button:focus {
  box-shadow: none;
}

.mp-accordion {
  margin-inline: calc(-1 * var(--mp-space-4));
}

.mp-accordion__item + .mp-accordion__item {
  border-top: 1px solid var(--mp-color-border);
}

.mp-accordion__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px var(--mp-space-4);
  cursor: pointer;
  list-style: none;
  font-weight: 600;
}
.mp-accordion__head::-webkit-details-marker {
  display: none;
}
.mp-accordion__head:hover {
  background: var(--mp-color-surface-muted);
}
.mp-accordion__head:focus-visible {
  outline: 2px solid var(--mp-color-accent);
  outline-offset: -2px;
}

.mp-accordion__chevron {
  transition: transform 0.2s ease;
  flex: 0 0 auto;
}

.mp-accordion__item[open] .mp-accordion__chevron {
  transform: rotate(180deg);
}

.mp-accordion__body {
  padding: 0 var(--mp-space-4) var(--mp-space-4);
}

@media (prefers-reduced-motion: reduce) {
  .mp-accordion__chevron {
    transition: none;
  }
}
.mp-acc__item--flat > .mp-acc__head {
  cursor: default;
  pointer-events: none;
}
.mp-acc__item--flat > .mp-acc__head::-webkit-details-marker {
  display: none;
}
.mp-acc__item--flat > .mp-acc__head::marker {
  content: "";
}
.mp-acc__item--flat .mp-acc__chev {
  display: none;
}

.filter-card {
  position: relative;
  z-index: 1050;
  overflow: visible;
}

.filter-card .card-body {
  overflow: visible;
  padding: 0.65rem 0.75rem;
}

.facet-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
  position: relative;
  z-index: 1051;
}

.member-portal .facet-bar .facet-select {
  width: auto;
  text-transform: uppercase;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.05em;
  padding: 10px 32px 10px 16px;
  border-radius: var(--mp-radius-lg);
  background-color: var(--mp-color-surface);
  border: 1px solid var(--mp-color-border);
  color: var(--mp-color-text);
}

.member-portal .facet-bar .btn,
.member-portal .facet-bar .dropdown-toggle {
  text-transform: uppercase;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.05em;
  padding: 10px 16px;
  border-radius: var(--mp-radius-lg);
  background: var(--mp-color-surface);
  border: 1px solid var(--mp-color-border);
  color: var(--mp-color-text);
}

.member-portal .facet-bar .btn:hover {
  background: var(--mp-color-brand);
  border-color: var(--mp-color-brand);
  color: #fff;
}

.member-portal .facet-bar .btn .badge {
  background: var(--mp-color-brand) !important;
}

.member-portal .facet-bar .btn:hover .badge {
  background: #fff !important;
  color: var(--mp-color-brand) !important;
}

.member-portal .facet-bar a.btn-link {
  text-transform: uppercase;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.05em;
  padding: 10px 16px;
  border-radius: var(--mp-radius-lg);
  background: var(--mp-color-brand);
  color: #fff !important;
  text-decoration: none;
  border: 1px solid var(--mp-color-brand);
}

.member-portal .facet-bar a.btn-link:hover {
  background: var(--mp-color-brand-hover);
  border-color: var(--mp-color-brand-hover);
  color: #fff !important;
}

.member-portal .facet-bar a.btn-link i {
  color: #fff !important;
}

.facet-menu {
  min-width: 240px;
  max-height: 320px;
  overflow-y: auto;
  z-index: 1060 !important;
  padding: 6px !important;
  background: var(--mp-color-surface);
  border: 1px solid var(--mp-color-border);
  border-radius: 0 0 var(--mp-radius) var(--mp-radius);
  box-shadow: var(--mp-shadow-dropdown);
}

.facet-menu label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 8px 20px;
  margin: 0;
  color: var(--mp-color-text-2);
  transition: all 0.15s ease;
  cursor: pointer;
}

.facet-menu label:hover,
.facet-menu label:focus-within {
  background: var(--mp-color-brand);
  color: #fff;
}

.facet-menu label:hover .count,
.facet-menu label:focus-within .count {
  color: rgba(255, 255, 255, 0.85);
}

.facet-menu .count {
  margin-left: auto;
  color: var(--mp-color-muted);
  font-size: 0.8rem;
}

.member-portal .chip {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  background: var(--mp-color-surface-muted);
  color: var(--mp-color-text);
  border: none;
  border-radius: var(--mp-radius);
  padding: 0.25rem 0.25rem 0.25rem 0.6rem;
  font-size: 0.8rem;
  font-weight: 500;
  line-height: 1.3;
  transition: background 0.12s ease;
}

.member-portal .chip:hover {
  background: #e9ecef;
}

.member-portal .chip-remove {
  width: 20px;
  height: 20px;
  border: none;
  background: transparent;
  color: var(--mp-color-muted);
  border-radius: 4px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  line-height: 1;
  padding: 0;
  transition: all 0.12s ease;
}

.member-portal .chip-remove:hover {
  background: var(--mp-color-brand);
  color: #fff;
}

.member-portal .chip-remove:focus-visible {
  outline: 2px solid var(--mp-color-brand);
  outline-offset: 1px;
}

.results-wrap {
  position: relative;
  z-index: 1;
}

.results-wrap.is-loading::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.55);
  z-index: 5;
  border-radius: var(--mp-radius);
}

.results-wrap.is-loading::before {
  content: "";
  position: absolute;
  top: 24px;
  left: 50%;
  width: 28px;
  height: 28px;
  border: 3px solid rgba(0, 0, 0, 0.1);
  border-top-color: var(--mp-color-brand);
  border-radius: 50%;
  animation: mp-spin 0.8s linear infinite;
  transform: translateX(-50%);
  z-index: 6;
}

@keyframes mp-spin {
  to {
    transform: translateX(-50%) rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .results-wrap.is-loading::before {
    animation: none;
  }
}
.mp-list-error {
  display: none;
}

.results-wrap.is-failed .mp-list-error {
  display: block;
  margin-bottom: 0.5rem;
  padding: 0.5rem 0.75rem;
  border-radius: var(--mp-radius);
  background: var(--mp-color-danger-light, #fdecea);
  color: var(--mp-color-danger, #b3261e);
  font-size: 0.875rem;
}

.member-widget .member-login-dropdown,
.member-widget .member-dropdown {
  min-width: 240px;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

.member-widget .dropdown-header {
  padding: 0.5rem 1rem;
}

.member-widget .dropdown-item {
  padding: 0.4rem 1rem;
  font-size: 0.9rem;
}

.member-widget .dropdown-item:hover,
.member-widget .dropdown-item:hover span,
.member-widget .dropdown-item:hover i {
  background: var(--mp-color-brand) !important;
  color: #fff !important;
}

.member-widget .dropdown-item i {
  width: 20px;
  text-align: center;
}

.dev-hero {
  background: linear-gradient(135deg, var(--mp-color-surface-alt), var(--mp-color-surface));
  border: 1px solid var(--mp-color-border-soft);
  border-radius: var(--mp-radius-lg);
  padding: 1.25rem 1.5rem;
}

.dev-hero h2 {
  margin: 0;
  font-weight: 600;
  color: var(--mp-color-text);
}

.dev-hero__avatar img,
.dev-hero__avatar-placeholder {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
}

.dev-hero__avatar-placeholder {
  background: var(--mp-color-surface-muted);
  color: var(--mp-color-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
}

.dev-pills {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.dev-pills__input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.dev-pills__label {
  flex: 1 1 auto;
  min-width: 110px;
  padding: 0.75rem 1rem;
  border: 2px solid var(--mp-color-border);
  border-radius: var(--mp-radius);
  background: var(--mp-color-surface);
  text-align: center;
  cursor: pointer;
  font-weight: 500;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
  user-select: none;
}

.dev-pills__label:hover {
  border-color: var(--mp-color-brand);
}

.dev-pills__input:checked + .dev-pills__label {
  border-color: var(--mp-color-brand);
  background: var(--mp-color-brand);
  color: #fff;
}

.dev-pills__input:focus-visible + .dev-pills__label {
  outline: 2px solid var(--mp-color-brand);
  outline-offset: 2px;
}

.dev-ai {
  border: 2px dashed var(--mp-color-accent);
  background: linear-gradient(135deg, var(--mp-color-accent-light), var(--mp-color-surface));
}

.dev-ai__header {
  background: var(--mp-color-accent-light);
  border-bottom: 1px dashed var(--mp-color-accent);
  color: var(--mp-color-accent-text);
}

.dev-ai__empty {
  text-align: center;
  color: var(--mp-color-muted);
  padding: 1rem 0.5rem;
}

.dev-ai__text {
  font-size: 1.1rem;
  line-height: 1.5;
  padding: 0.75rem 1rem;
  background: #fff;
  border-radius: var(--mp-radius);
  border: 1px solid var(--mp-color-border-soft);
  color: var(--mp-color-text);
}

.dev-goal {
  border: 1px solid var(--mp-color-border-soft);
  border-radius: var(--mp-radius-lg);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.dev-goal:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
}

.dev-goal__text {
  font-size: 1.1rem;
  line-height: 1.45;
  color: var(--mp-color-text);
}

.dev-goal__cat {
  font-size: 0.85rem;
  padding: 0.35rem 0.75rem;
  font-weight: 500;
  border-radius: var(--mp-radius);
}

.dev-goal__cat--sport {
  background: #d1f4dd;
  color: #0a6f33;
}

.dev-goal__cat--social {
  background: #ffe9d6;
  color: #8a4500;
}

.dev-goal__cat--daily {
  background: #e0e7ff;
  color: #1e3a8a;
}

.dev-goal .d-flex.justify-content-between {
  flex-direction: column;
}

.dev-goal .btn-group-vertical,
.dev-goal .d-flex.flex-column.gap-2 {
  flex-direction: row;
  margin-top: 0.75rem;
  width: 100%;
}

.dev-goal .d-flex.flex-column.gap-2 .btn,
.dev-goal .btn-group-vertical .btn {
  flex: 1;
}

@media (min-width: 576px) {
  .dev-goal .d-flex.justify-content-between {
    flex-direction: row;
  }
  .dev-goal .btn-group-vertical,
  .dev-goal .d-flex.flex-column.gap-2 {
    flex-direction: column;
    margin-top: 0;
    width: auto;
  }
  .dev-goal .d-flex.flex-column.gap-2 .btn,
  .dev-goal .btn-group-vertical .btn {
    flex: 0 0 auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  .dev-goal {
    transition: none;
  }
  .dev-goal:hover {
    transform: none;
  }
}
.mp-header--gold {
  font-family: var(--mp-font-ui);
  font-weight: 700;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--mp-color-accent-text);
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
}

.mp-header--gold i {
  color: var(--mp-color-accent);
  font-size: 15px;
}

.mp-card__header {
  font-family: var(--mp-font-ui);
  font-weight: 700;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--mp-color-accent-text);
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  background: var(--mp-color-accent-light);
  padding: 11px var(--mp-card-pad, var(--mp-space-4));
  border-bottom: 1px solid var(--mp-color-border-soft);
}
.mp-card__header i {
  color: var(--mp-color-accent);
  font-size: 15px;
  margin-right: 0;
}
.mp-card__header .mp-card__title {
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  color: inherit;
  margin: 0;
}

.mp-header--gold--screen {
  font-size: 13px;
  letter-spacing: 0.06em;
}

.member-portal .mp-header--gold i {
  margin-right: 0;
}

.mp-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 18px 0 12px;
}

.mp-section-header__title {
  font-size: 13px;
  letter-spacing: 0.06em;
}

.mp-section-header__action {
  font-family: var(--mp-font-ui);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--mp-color-accent-text);
  text-decoration: none;
  cursor: pointer;
}

.mp-area-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 22px 0 12px;
  font-family: var(--mp-font-ui);
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--mp-color-text);
}

.mp-area-header::before {
  content: "";
  width: 4px;
  height: 18px;
  border-radius: 2px;
  background: var(--mp-color-brand);
  flex-shrink: 0;
}

.mp-header--gold-dark {
  background: var(--mp-color-text);
  color: #D4A020;
  font-family: var(--mp-font-ui);
  font-weight: 700;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 11px var(--mp-space-4);
  border-radius: var(--mp-radius-lg) var(--mp-radius-lg) 0 0;
}

.mp-header--gold-dark i {
  color: #D4A020;
  font-size: 15px;
}

.btn-mp {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  font-family: var(--mp-font-ui);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.02em;
  border-radius: var(--mp-radius);
  padding: 0 18px;
  cursor: pointer;
  border: 1px solid transparent;
  text-decoration: none;
  transition: background var(--mp-transition), color var(--mp-transition), border-color var(--mp-transition);
}

.btn-mp--sm {
  min-height: 44px;
  padding: 8px 14px;
  font-size: 12px;
}

.btn-mp--lg {
  min-height: 52px;
  padding: 14px 24px;
  font-size: 15px;
}

.btn-mp--primary {
  background: var(--mp-color-brand);
  color: #fff;
}

.btn-mp--primary:hover {
  background: var(--mp-color-brand-hover);
  color: #fff;
}

.btn-mp--primary:active {
  background: var(--mp-color-brand-active);
}

.btn-mp--secondary {
  background: var(--mp-color-surface);
  color: var(--mp-color-text);
  border-color: var(--mp-color-border);
}

.btn-mp--secondary:hover {
  background: var(--mp-color-brand);
  color: #fff;
  border-color: var(--mp-color-brand);
}

.btn-mp--accent {
  background: var(--mp-color-accent-light);
  color: var(--mp-color-accent-text);
}

.btn-mp--accent:hover {
  background: var(--mp-color-accent);
  color: #fff;
}

.btn-mp--ghost {
  background: var(--mp-color-surface);
  color: var(--mp-color-text);
  border-color: var(--mp-color-border);
}

.btn-mp--ghost:hover {
  background: var(--mp-color-brand);
  color: #fff;
  border-color: var(--mp-color-brand);
}

.btn-mp--outline,
.btn-mp--danger-confirm {
  background: var(--mp-color-surface);
  color: var(--mp-color-brand);
  border-color: var(--mp-color-brand);
}

.btn-mp--outline:hover,
.btn-mp--danger-confirm:hover {
  background: var(--mp-color-brand);
  color: #fff;
}

.btn-mp--success {
  background: #15803D;
  color: #fff;
  border-color: #15803D;
}

.btn-mp--success:hover {
  background: #126B33;
  color: #fff;
}

.btn-mp--success.is-active,
.btn-mp--danger.is-active {
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.85);
}

.btn-mp--danger {
  background: var(--mp-color-brand);
  color: #fff;
  border-color: var(--mp-color-brand);
}

.btn-mp--danger:hover {
  background: var(--mp-color-brand-hover);
  color: #fff;
}

.btn-mp--neutral {
  background: var(--mp-color-surface);
  color: var(--mp-color-text-2);
  border-color: var(--mp-color-border);
}

.btn-mp--neutral:hover {
  border-color: var(--mp-color-text-2);
}

.btn-mp--icon {
  width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  background: var(--mp-color-surface);
  border-color: var(--mp-color-border);
  color: var(--mp-color-text-2);
}

.btn-mp--icon:hover {
  background: var(--mp-color-brand);
  color: #fff;
  border-color: var(--mp-color-brand);
}

.btn-mp:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--mp-color-brand-muted);
}

.btn-mp:disabled, .btn-mp.disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

@media (prefers-reduced-motion: reduce) {
  .btn-mp {
    transition: none;
  }
}
.mp-card {
  background: var(--mp-color-surface);
  border: 1px solid var(--mp-color-border);
  border-radius: var(--mp-radius-lg);
}
@media (max-width: 575.98px) {
  .mp-card {
    border-radius: 0;
    border-inline: 0;
  }
}
.mp-card {
  box-shadow: var(--mp-shadow);
  margin-bottom: var(--mp-space-4);
}
@media (max-width: 575.98px) {
  .mp-card {
    margin-bottom: 0;
  }
}
.mp-card {
  overflow: hidden;
}

.mp-card__body {
  --mp-card-pad: var(--mp-space-4);
}
@media (min-width: 992px) {
  .mp-card__body {
    --mp-card-pad: 24px;
  }
}
.mp-card__body {
  padding: var(--mp-space-4);
  padding-inline: var(--mp-card-pad);
}

.mp-card__media {
  display: block;
  margin: calc(-1 * var(--mp-card-pad, var(--mp-space-4))) calc(-1 * var(--mp-card-pad, var(--mp-space-4))) var(--mp-space-3);
  aspect-ratio: 16/10;
  overflow: hidden;
  background: var(--mp-color-surface-muted);
}

.mp-card__media > a {
  display: block;
  height: 100%;
}

@media (min-width: 768px) {
  .col-md-4 .mp-card__media,
  .col-md-6 .mp-card__media {
    margin-top: calc(-1 * var(--mp-space-4) + 8px);
    margin-inline: calc(-1 * var(--mp-card-pad, var(--mp-space-4)) + 8px);
    margin-bottom: var(--mp-space-3);
  }
}
@media (max-width: 575.98px) {
  .mp-card__media,
  .mp-card__media img,
  .mp-card__media video,
  .mp-card__media picture img {
    border-radius: 0;
  }
}
.mp-card__media img,
.mp-card__media video,
.mp-card__media picture,
.mp-card__media picture img,
.mp-card__media .video-player,
.mp-card__media .video-player__poster,
.mp-card__media .video-player__poster-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0;
}

.mp-prose,
.news-detail {
  --bleed: calc(-1 * var(--mp-card-pad, var(--mp-space-4)));
}
.mp-prose > .news-detail-header-picture,
.mp-prose > figure,
.mp-prose > img,
.mp-prose > .video-player,
.news-detail > .news-detail-header-picture,
.news-detail > figure,
.news-detail > img,
.news-detail > .video-player {
  margin-inline: var(--bleed);
  display: block;
  width: calc(100% + 2 * var(--mp-card-pad, var(--mp-space-4)));
  max-width: none;
}
.mp-prose > .news-detail-header-picture:first-child,
.news-detail > .news-detail-header-picture:first-child {
  margin-top: var(--bleed);
}
.mp-prose > .news-detail-header-picture img,
.mp-prose > figure img,
.news-detail > .news-detail-header-picture img,
.news-detail > figure img {
  width: 100%;
  height: auto;
  display: block;
}
.mp-prose h2,
.news-detail h2 {
  margin-inline: var(--bleed);
  padding: 10px var(--mp-card-pad, var(--mp-space-4));
  background: var(--mp-color-surface-muted);
  border-top: 1px solid var(--mp-color-border);
  border-bottom: 1px solid var(--mp-color-border);
}
.mp-prose > .news-detail-header-picture,
.mp-prose > .news-detail-header-picture img,
.mp-prose > figure,
.mp-prose > figure img,
.mp-prose > .video-player,
.mp-prose > img,
.news-detail > .news-detail-header-picture,
.news-detail > .news-detail-header-picture img,
.news-detail > figure,
.news-detail > figure img,
.news-detail > .video-player,
.news-detail > img {
  border-radius: 0;
}

@media (max-width: 575.98px) {
  .main-container .frame-type-header:not(.mp-card *),
  .main-container .frame-type-text:not(.mp-card *),
  .main-container .frame-type-textpic:not(.mp-card *),
  .main-container .mp-section-header:not(.mp-card *),
  .main-container .member-portal > p:not(.mp-card *),
  .main-container .member-portal > .mp-perm-legend:not(.mp-card *) {
    padding-inline: var(--mp-space-4);
  }
}
.mp-hero {
  display: flex;
  align-items: center;
  gap: var(--mp-space-4);
  background: linear-gradient(135deg, var(--mp-color-surface-alt), var(--mp-color-surface));
  border: 1px solid var(--mp-color-border-soft);
  border-radius: var(--mp-radius-lg);
  padding: var(--mp-space-4) var(--mp-space-5);
  margin-bottom: var(--mp-space-5);
}

.mp-hero__body {
  min-width: 0;
}

.mp-hero__eyebrow {
  font-family: var(--mp-font-ui);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--mp-color-muted);
}

.mp-hero__name {
  font-family: var(--mp-font-ui);
  font-size: 19px;
  font-weight: 700;
  margin: 2px 0 6px;
}

.mp-list .row-item,
.mp-card .row-item {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 12px 14px;
  min-height: 48px;
  border-bottom: 1px solid var(--mp-color-border-soft);
  color: var(--mp-color-text);
  text-decoration: none;
  cursor: pointer;
  transition: background var(--mp-transition);
}

.mp-list .row-item:last-child,
.mp-card .row-item:last-child {
  border-bottom: 0;
}

.mp-list .row-item:hover,
.mp-card .row-item:hover {
  background: var(--mp-color-brand-light);
}

.row-item__icon {
  width: 18px;
  text-align: center;
  color: var(--mp-color-muted);
  flex-shrink: 0;
}

.row-item__label {
  flex: 1;
  min-width: 0;
}

.row-item .chev {
  margin-left: auto;
  color: var(--mp-color-muted);
  flex-shrink: 0;
}

.mp-kv {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 0;
  border-bottom: 1px solid var(--mp-color-border-soft);
  font-size: 14px;
}

.mp-kv:last-child {
  border-bottom: 0;
}

.mp-kv__key {
  color: var(--mp-color-muted);
}

.mp-kv__val {
  text-align: right;
}

.mp-filter-bar {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 4px;
  margin-bottom: 14px;
}

.mp-filter-bar::-webkit-scrollbar {
  display: none;
}

.mp-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  font-family: var(--mp-font-ui);
  font-size: 12px;
  font-weight: 700;
  padding: 8px 14px;
  min-height: 38px;
  border: 1.5px solid var(--mp-color-border);
  border-radius: var(--mp-radius-pill);
  background: var(--mp-color-surface);
  color: var(--mp-color-text-2);
  cursor: pointer;
  text-decoration: none;
  transition: background var(--mp-transition), color var(--mp-transition), border-color var(--mp-transition);
}

.mp-pill--active {
  background: var(--mp-color-brand);
  border-color: var(--mp-color-brand);
  color: #fff;
}

.mp-pill:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--mp-color-brand-muted);
}

.mp-segmented {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
}

.mp-segmented__input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.mp-segmented__label {
  cursor: pointer;
  white-space: nowrap;
  font-family: var(--mp-font-ui);
  font-size: 12px;
  font-weight: 700;
  padding: 9px 16px;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  border: 1.5px solid var(--mp-color-border);
  border-radius: var(--mp-radius-pill);
  background: var(--mp-color-surface);
  color: var(--mp-color-text-2);
  transition: background var(--mp-transition), color var(--mp-transition), border-color var(--mp-transition);
}

.mp-segmented__label:hover {
  border-color: var(--mp-color-brand);
}

.mp-segmented__input:checked + .mp-segmented__label {
  background: var(--mp-color-brand);
  border-color: var(--mp-color-brand);
  color: #fff;
}

.mp-segmented__input:focus-visible + .mp-segmented__label {
  outline: none;
  box-shadow: 0 0 0 3px var(--mp-color-brand-muted);
}

.mp-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--mp-color-accent-light);
  color: var(--mp-color-accent-text);
  font-family: var(--mp-font-ui);
  font-weight: 700;
  font-size: 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
}
.mp-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mp-avatar--lg {
  width: 54px;
  height: 54px;
  font-size: 19px;
}

.mp-avatar--sm {
  width: 32px;
  height: 32px;
  font-size: 12px;
}

.tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--mp-font-ui);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 3px 8px;
  border-radius: 4px;
  background: var(--mp-color-surface-muted);
  color: var(--mp-color-text-2);
}

.tag--home {
  background: var(--mp-status-active);
  color: #0A3D1A;
}

.tag--away {
  background: var(--mp-color-accent-light);
  color: var(--mp-color-accent-text);
}

.tag--result {
  background: var(--mp-color-text);
  color: #fff;
}

.tag--match {
  background: var(--mp-color-brand);
  color: #fff;
}

.tag--training {
  background: var(--mp-color-accent-light);
  color: var(--mp-color-accent-text);
}

.tag--tournament {
  background: #ECE6F7;
  color: #5a3ea8;
}

.tag--ok {
  background: var(--mp-status-active);
  color: #0A3D1A;
}

.tag--cancelled {
  background: #FDE8E8;
  color: var(--mp-color-brand);
}

.mp-empty {
  text-align: center;
  padding: 40px 20px;
  color: var(--mp-color-muted);
}

.mp-empty__icon {
  font-size: 28px;
  color: var(--mp-color-muted);
  margin-bottom: 10px;
}

.mp-empty__msg {
  font-family: var(--mp-font-ui);
  font-size: 14px;
  color: var(--mp-color-muted);
  margin: 0 0 14px;
}

.tc-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: flex-end;
  flex-shrink: 0;
}

.mp-kv.tc-sub {
  padding-left: 16px;
  color: var(--mp-color-muted);
}
.mp-kv.tc-sub i {
  margin-right: 4px;
}

.mp-stat {
  text-align: center;
  padding: 6px 0;
}

.stat-num {
  font-family: var(--mp-font-ui);
  font-weight: 700;
  font-size: 40px;
  color: var(--mp-color-brand);
  line-height: 1;
}

.mp-tiles {
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr;
}
@media (min-width: 576px) {
  .mp-tiles {
    grid-template-columns: repeat(2, 1fr);
  }
}

a.mp-card,
.mp-card--link {
  display: block;
  text-decoration: none;
  color: inherit;
  transition: transform var(--mp-transition), box-shadow var(--mp-transition);
}

@media (hover: hover) {
  a.mp-card--link:hover {
    transform: translateY(-2px);
    box-shadow: var(--mp-shadow-lg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .mp-card--link {
    transition: none;
  }
  a.mp-card--link:hover {
    transform: none;
  }
}
.tile {
  display: block;
  text-align: center;
  padding: 10px 6px;
  cursor: pointer;
}

.tile i {
  font-size: 24px;
  color: var(--mp-color-brand);
}

.tile .t {
  font-family: var(--mp-font-ui);
  font-weight: 700;
  font-size: 15px;
  margin-top: 8px;
  color: var(--mp-color-text);
}

.tile .d {
  font-size: 12px;
  color: var(--mp-color-muted);
  margin-top: 2px;
}

.progress-mini {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8rem;
  color: var(--mp-color-muted);
}

.progress-mini__bar {
  position: relative;
  width: 80px;
  height: 6px;
  border-radius: 3px;
  background: rgba(0, 0, 0, 0.08);
  overflow: hidden;
}

.progress-mini__fill {
  position: absolute;
  inset: 0 auto 0 0;
  background: var(--mp-status-active);
}

.progress-mini--partial .progress-mini__fill {
  background: var(--mp-status-pending);
}

.event {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 0;
  border-bottom: 1px solid var(--mp-color-border-soft);
}

.event > div:first-child {
  flex: 1 1 auto;
  min-width: 0;
}

.event > .time {
  flex: 0 1 auto;
  min-width: 0;
}

.event:last-child {
  border-bottom: 0;
}

.event .ttl {
  font-weight: 600;
  margin: 5px 0 2px;
}

.event .meta {
  font-size: 12px;
  color: var(--mp-color-muted);
}

.event .time {
  font-family: var(--mp-font-ui);
  font-weight: 700;
  text-align: right;
  white-space: nowrap;
}

.event__actions {
  display: flex;
  gap: 6px;
  margin-top: 8px;
  flex-wrap: wrap;
}

.event__result {
  display: flex;
  gap: 6px;
  align-items: center;
  margin-top: 10px;
}

.event__result .form-control {
  max-width: 130px;
}

.event--cancelled {
  opacity: 0.65;
}

.event--card {
  padding: 0;
  border-bottom: 0;
}

@media (max-width: 575.98px) {
  .event {
    flex-wrap: wrap;
  }
  .event > div:first-child {
    flex: 1 1 100%;
  }
  .event > .time {
    flex: 1 1 100%;
    text-align: left;
  }
}
.event--cancelled .ttl {
  text-decoration: line-through;
}

.weekday-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
}

.weekday-grid label {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 9px 4px;
  border: 1.5px solid var(--mp-color-border);
  border-radius: var(--mp-radius-sm, 8px);
  cursor: pointer;
  user-select: none;
  font-family: var(--mp-font-ui);
  font-size: 12px;
  font-weight: 700;
  color: var(--mp-color-text-2);
  transition: background var(--mp-transition), color var(--mp-transition), border-color var(--mp-transition);
}

.weekday-grid input {
  margin: 0;
}

.weekday-grid label:has(input:checked) {
  background: var(--mp-color-brand);
  color: #fff;
  border-color: var(--mp-color-brand);
}

.check-list {
  display: flex;
  flex-direction: column;
}

.check-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 0;
  border-bottom: 1px solid var(--mp-color-border-soft);
  cursor: pointer;
}

.check-item:last-child {
  border-bottom: 0;
}

.check-item input {
  width: 18px;
  height: 18px;
  accent-color: var(--mp-color-brand);
  flex-shrink: 0;
}

.check-item small {
  color: var(--mp-color-muted);
  margin-left: 4px;
}

.mp-month-label {
  font-family: var(--mp-font-ui);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--mp-color-text);
  margin: 0;
}

.mp-steps {
  margin: 0.75rem 0 0;
  padding-left: 1.25rem;
}
.mp-steps li {
  margin-bottom: 0.4rem;
  line-height: 1.45;
}
.mp-steps li:last-child {
  margin-bottom: 0;
}

.mp-tracking {
  text-align: center;
  border: 2px dashed var(--mp-color-brand);
  border-radius: 14px;
  padding: 1.25rem 1rem;
  background: var(--mp-color-brand-muted);
}

.mp-tracking__label {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--mp-color-text-2);
  margin-bottom: 0.35rem;
}

.mp-tracking__code {
  font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  font-size: clamp(2.1rem, 13vw, 3.1rem);
  font-weight: 800;
  letter-spacing: 0.18em;
  line-height: 1;
  color: var(--mp-color-brand);
}

.mp-tracking__inline {
  font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--mp-color-brand);
  background: transparent;
  padding: 0;
}

.mp-tracking__input {
  font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-weight: 700;
  font-size: 1.15rem;
}

.event__participant {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  margin-top: 2px;
}

.event__participant .participant,
.event__respond .participant {
  font-size: 12px;
  color: var(--mp-color-text-2);
}

.event__respond {
  width: 100%;
  margin-top: 6px;
}

.respond-row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 5px 0;
}

.respond-row > .participant {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.respond-form {
  flex: 0 0 auto;
  display: flex;
  gap: 6px;
}

@media (max-width: 420px) {
  .respond-row {
    flex-wrap: wrap;
    gap: 6px;
  }
  .respond-form {
    width: 100%;
  }
  .respond-form .btn-mp {
    flex: 1 1 0;
    justify-content: center;
  }
}
.event__participant .participant--self {
  font-weight: 700;
  color: var(--mp-color-text);
}

.mp-kv {
  display: flex;
  gap: 12px;
  align-items: baseline;
  padding: 6px 0;
  border-bottom: 1px solid var(--mp-color-border);
}

.mp-kv:last-child {
  border-bottom: 0;
}

.mp-kv__k {
  flex: 0 0 40%;
  font-size: 12px;
  color: var(--mp-color-text-2);
}

.mp-kv__v {
  flex: 1 1 auto;
}

.mp-pairing {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 10px 0 14px;
  text-align: center;
}

.mp-pairing__team {
  font-weight: 700;
}

.mp-pairing__vs {
  font-size: 12px;
  color: var(--mp-color-text-2);
  text-transform: uppercase;
}

.event__details {
  margin-top: 6px;
}

.mp-modal__text {
  margin: 10px 0 0;
}

.perm-matrix table {
  font-size: 13px;
}

.perm-matrix th.role-col {
  text-align: left;
  min-width: 200px;
  vertical-align: middle;
  background: var(--mp-color-surface-alt);
}

.perm-matrix th.perm-col {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  white-space: nowrap;
  height: 160px;
  font-family: var(--mp-font-ui);
  font-weight: 600;
  font-size: 12px;
  background: var(--mp-color-surface-alt);
  vertical-align: bottom;
  padding: 0.25rem 0.35rem;
}

.perm-matrix th.perm-col code {
  writing-mode: horizontal-tb;
  transform: none;
  display: block;
  font-size: 10px;
  color: var(--mp-color-muted);
}

.perm-matrix td {
  text-align: center;
  vertical-align: middle;
  padding: 0.25rem;
}

.perm-matrix td.role-cell {
  text-align: left;
  padding-left: 0.75rem;
  font-weight: 600;
}

.perm-matrix td.role-cell small {
  font-weight: 400;
  color: var(--mp-color-muted);
  display: block;
}

.perm-matrix td.actions {
  width: 110px;
  text-align: right;
  padding-right: 0.5rem;
}

.perm-matrix tr.role-row:hover {
  background: var(--mp-color-surface-alt);
}

.perm-matrix input[type=checkbox] {
  width: 18px;
  height: 18px;
  accent-color: var(--mp-color-brand);
}

.mp-role-group {
  margin-top: 4px;
}

.mp-role-group + .mp-role-group {
  margin-top: 20px;
}

.mp-role-group__title {
  margin: 0 0 10px;
  font-family: var(--mp-font-ui);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--mp-color-muted);
}

.mp-role-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.mp-role-card {
  border: 1px solid var(--mp-color-border-soft);
  border-radius: var(--mp-radius);
  background: var(--mp-color-surface);
  padding: 12px 14px;
}

.mp-role-card__name {
  font-family: var(--mp-font-ui);
  font-weight: 700;
  color: var(--mp-color-text);
  margin-bottom: 10px;
}

.mp-role-card__checks {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4px 20px;
}
@media (min-width: 768px) {
  .mp-role-card__checks {
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  }
}

.mp-check {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 36px;
  cursor: pointer;
  margin: 0;
}
.mp-check input[type=checkbox] {
  margin: 0;
}

.mp-check__label {
  font-size: 14px;
  line-height: 1.3;
  color: var(--mp-color-text);
}

.mp-check.is-muted {
  cursor: not-allowed;
}
.mp-check.is-muted .mp-check__label {
  color: var(--mp-color-muted);
}

.mp-master-data {
  background: var(--mp-color-surface);
  border: 1px solid var(--mp-color-border-soft);
  border-radius: var(--mp-radius, 8px);
  margin-bottom: 1rem;
  overflow: hidden;
}

.mp-master-data > summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.85rem 1rem;
  font-family: var(--mp-font-ui);
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  background: var(--mp-color-accent-light);
  color: var(--mp-color-accent-text);
}

.mp-master-data > summary::-webkit-details-marker {
  display: none;
}

.mp-master-data > summary::marker {
  content: "";
}

.mp-master-data > summary i {
  color: var(--mp-color-accent-text);
}

.mp-master-data__body {
  padding: 1rem;
}

.mp-master-data thead th {
  font-family: var(--mp-font-ui);
  font-weight: 600;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--mp-color-muted);
}

.mp-master-data .col-key code {
  font-size: 12px;
  color: var(--mp-color-text-2);
}

.mp-master-data table input.form-control-sm,
.mp-master-data table select.form-select-sm {
  min-width: 0;
}

.mp-master-data input[type=checkbox] {
  width: 18px;
  height: 18px;
  accent-color: var(--mp-color-brand);
}

.mp-account-child {
  border: 1px solid var(--mp-color-border-soft);
  border-radius: var(--mp-radius, 8px);
  padding: 0.85rem 1rem;
  margin-bottom: 0.65rem;
}

.mp-account-child:last-child {
  margin-bottom: 0;
}

.mp-account-child__name {
  font-weight: 600;
  color: var(--mp-color-text);
}

.mp-account-child__todo {
  margin-top: 0.25rem;
}

.mp-account-child__action {
  margin-top: 0.65rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.mp-account-child__action form {
  margin: 0;
}
.mp-account-child__action .btn-mp {
  width: 100%;
}
@media (min-width: 768px) {
  .mp-account-child__action {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .mp-account-child__action .btn-mp {
    width: auto;
  }
}

.mp-tournament__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.mp-tournament-team__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--mp-color-border-soft);
}
.mp-tournament-team__row:last-child {
  border-bottom: 0;
}
.mp-tournament-team__row.is-withdrawn .mp-tournament-team__name {
  text-decoration: line-through;
  opacity: 0.6;
}

.mp-tournament-team__name {
  font-weight: 600;
}

.mp-tournament-team__action {
  margin: 0;
}

.mp-tournament-match__round {
  margin-bottom: 1.1rem;
}

.mp-tournament-match__roundTitle {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  font-size: 1rem;
  font-weight: 700;
  margin: 0 0 0.4rem;
}

.mp-tournament-match__roundTime {
  font-weight: 400;
  color: var(--mp-color-text-muted);
}

.mp-tournament-match__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--mp-color-border-soft);
  border-radius: var(--mp-radius, 8px);
  margin-bottom: 0.4rem;
}
.mp-tournament-match__row.is-cancelled {
  opacity: 0.55;
}

.mp-tournament-match__number {
  flex: 0 0 2rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.mp-tournament-match__pitch {
  flex: 0 0 auto;
  font-size: 0.85rem;
  color: var(--mp-color-text-muted);
  white-space: nowrap;
}

.mp-tournament-match__pairing {
  flex: 1 1 12rem;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem;
}

.mp-tournament-match__vs {
  color: var(--mp-color-text-muted);
}

.mp-tournament-match__result {
  flex: 0 0 auto;
  min-height: 44px;
  min-width: 6.5rem;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 575.98px) {
  .mp-tournament-match__result {
    flex: 1 1 100%;
  }
}
.mp-tournament-result {
  display: flex;
  align-items: flex-end;
  gap: 0.75rem;
}

.mp-tournament-result__side {
  flex: 1 1 0;
  min-width: 0;
}

.mp-tournament-result__colon {
  padding-bottom: 0.55rem;
  font-size: 1.4rem;
  font-weight: 700;
}

.mp-tournament-result__goal {
  min-height: 48px;
  font-size: 1.35rem;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.mp-tournament-result__action {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
.mp-tournament-result__action .btn-mp {
  width: 100%;
  min-height: 44px;
}
@media (min-width: 768px) {
  .mp-tournament-result__action {
    flex-direction: row;
  }
  .mp-tournament-result__action .btn-mp {
    width: auto;
  }
}

.mp-tournament-standing {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.mp-tournament-standing__table {
  width: 100%;
  min-width: 33rem;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
}
.mp-tournament-standing__table th, .mp-tournament-standing__table td {
  padding: 0.45rem 0.5rem;
  text-align: center;
  border-bottom: 1px solid var(--mp-color-border-soft);
}
.mp-tournament-standing__table thead th {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--mp-color-text-muted);
}
.mp-tournament-standing__table abbr {
  text-decoration: none;
}

.mp-tournament-standing__rank {
  font-weight: 700;
}

.mp-tournament-standing__team {
  text-align: left;
  font-weight: 600;
}

.mp-tournament-standing__point {
  font-weight: 700;
}

.mp-tournament-qr {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}

.mp-tournament-qr__code {
  width: 180px;
  height: 180px;
  background: #fff;
  padding: 0.25rem;
  border: 1px solid var(--mp-color-border-soft);
  border-radius: var(--mp-radius, 8px);
}

.mp-tournament-qr__url {
  word-break: break-all;
  font-size: 0.85rem;
  color: var(--mp-color-text-muted);
}

.mp-tournament-public__round {
  margin-bottom: 1rem;
}

.mp-tournament-public__roundTitle {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--mp-color-text-muted);
  margin: 0 0 0.35rem;
}

.mp-tournament-public__row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem;
  padding: 0.4rem 0;
  border-bottom: 1px solid var(--mp-color-border-soft);
}
.mp-tournament-public__row:last-child {
  border-bottom: 0;
}
.mp-tournament-public__row.is-cancelled {
  opacity: 0.55;
}

.mp-tournament-public__number {
  flex: 0 0 1.8rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.mp-tournament-public__pitch {
  flex: 0 0 auto;
  font-size: 0.85rem;
  color: var(--mp-color-text-muted);
  white-space: nowrap;
}

.mp-tournament-public__pairing {
  flex: 1 1 12rem;
  min-width: 0;
}

.mp-tournament-public__vs {
  color: var(--mp-color-text-muted);
}

.mp-tournament-public__result {
  flex: 0 0 auto;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.mp-tournament-public__download {
  margin-top: 1rem;
}

.mp-tournament-match__locked {
  flex: 0 0 auto;
  min-width: 6.5rem;
  text-align: center;
  color: var(--mp-color-text-muted);
}

.mp-roster-jersey__row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.35rem 0;
  border-bottom: 1px solid var(--mp-color-border-soft);
}
.mp-roster-jersey__row:last-child {
  border-bottom: 0;
}

.mp-roster-jersey__name {
  flex: 1 1 8rem;
  margin: 0;
  min-width: 0;
}

.mp-roster-jersey__number {
  flex: 0 0 4.5rem;
  min-height: 44px;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.mp-roster-jersey__flag {
  flex: 0 0 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.mp-roster-jersey__flag .form-check-input {
  width: 1.35rem;
  height: 1.35rem;
  margin: 0;
}

.mp-roster-jersey__row--head {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--mp-color-text-muted);
  border-bottom-width: 2px;
}

@media (max-width: 575.98px) {
  .mp-roster-jersey__row {
    flex-wrap: wrap;
  }
  .mp-roster-jersey__name {
    flex: 1 1 100%;
  }
  .mp-roster-jersey__row--head {
    display: none;
  }
}
.mp-friendly-team__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--mp-color-border-soft);
}
.mp-friendly-team__row:last-child {
  border-bottom: 0;
}
.mp-friendly-team__row.is-withdrawn .mp-friendly-team__field input {
  text-decoration: line-through;
  opacity: 0.6;
}
.mp-friendly-team__row.is-own {
  font-weight: 600;
}

.mp-friendly-team__field {
  flex: 1 1 100%;
}
@media (min-width: 768px) {
  .mp-friendly-team__field {
    flex: 1 1 0;
    min-width: 12rem;
  }
}

.mp-friendly-team__name {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.mp-friendly-access__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.7rem 0;
  border-bottom: 1px solid var(--mp-color-border-soft);
}
.mp-friendly-access__row:last-child {
  border-bottom: 0;
}

.mp-friendly-access__name {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem;
  font-weight: 600;
}

.mp-friendly-access__meta {
  font-weight: 400;
  font-size: 0.85rem;
  color: var(--mp-color-text-muted);
}

.mp-friendly-access__action {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.mp-friendly-access__action form {
  display: flex;
  gap: 0.4rem;
  margin: 0;
}

.mp-friendly-match__day + .mp-friendly-match__day {
  margin-top: 1.4rem;
}

.mp-friendly-match__dayTitle {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 0.5rem;
  font-size: 1rem;
  font-weight: 700;
  color: var(--mp-color-text-muted);
}

.mp-friendly-match__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.35rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--mp-color-border-soft);
}
.mp-friendly-match__row:last-child {
  border-bottom: 0;
}
.mp-friendly-match__row.is-cancelled {
  opacity: 0.65;
}
.mp-friendly-match__row.is-cancelled .mp-friendly-match__pairing {
  text-decoration: line-through;
}
@media (min-width: 768px) {
  .mp-friendly-match__row {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1.4fr) minmax(0, 1.2fr) auto;
    align-items: center;
    gap: 0.75rem;
  }
}

.mp-friendly-match__pairing {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem;
  font-weight: 600;
}

.mp-friendly-match__vs {
  color: var(--mp-color-text-muted);
}

.mp-friendly-match__when {
  font-size: 0.9rem;
  color: var(--mp-color-text-muted);
}

.mp-friendly-match__noDate {
  font-style: italic;
}

.mp-friendly-match__booking {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.mp-friendly-match__edit {
  justify-self: start;
  min-height: 44px;
}
@media (min-width: 768px) {
  .mp-friendly-match__edit {
    justify-self: end;
  }
}

.mp-friendly-booking {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
}
.mp-friendly-booking--pending {
  background: #FDF3DC;
  color: #7A5906;
}
.mp-friendly-booking--approved {
  background: #E4F4E7;
  color: #1F6B33;
}
.mp-friendly-booking--rejected {
  background: #FBE4E4;
  color: #93221F;
}
.mp-friendly-booking--own {
  background: var(--mp-color-surface-muted, #F1F1F4);
  color: var(--mp-color-text-muted);
}

.mp-friendly-modal__part + .mp-friendly-modal__part {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--mp-color-border-soft);
}

.mp-friendly-modal__partTitle {
  margin: 0 0 0.6rem;
  font-size: 0.95rem;
  font-weight: 700;
}

.doc-card {
  background: var(--mp-color-surface);
  border: 1px solid var(--mp-color-border-soft);
  border-radius: var(--mp-radius, 8px);
  padding: 0.85rem 1rem;
  margin-bottom: 0.65rem;
}

.doc-card:last-child {
  margin-bottom: 0;
}

.doc-card__title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
  color: var(--mp-color-text);
}

.doc-card__meta {
  color: var(--mp-color-muted);
  font-size: 0.85rem;
  margin-top: 0.35rem;
}

.doc-card__form {
  margin-top: 0.65rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.doc-card__form .form-control {
  max-width: 320px;
}

.doc-card--required {
  border-left: 3px solid var(--mp-color-brand);
}

.doc-card--missing {
  background: rgba(197, 144, 10, 0.05);
}

.doc-card--rejected {
  border-color: var(--mp-status-deceased, #ff3b30);
  background: rgba(212, 32, 32, 0.04);
}

.doc-card--approved {
  background: rgba(52, 199, 89, 0.05);
}

.receipt-actions {
  display: flex;
  gap: 0.5rem;
  justify-content: flex-end;
  margin-bottom: 1rem;
}

.receipt-doc {
  background: var(--mp-color-surface);
  border: 1px solid var(--mp-color-border-soft);
  border-radius: var(--mp-radius, 8px);
  padding: 2.5rem 2rem;
  font-family: var(--mp-font-body);
  color: var(--mp-color-text);
}

.receipt-doc__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 2rem;
}

.receipt-doc__brand {
  font-family: var(--mp-font-ui);
  font-weight: 700;
  font-size: 1.25rem;
}

.receipt-doc__brand small {
  display: block;
  color: var(--mp-color-muted);
  font-size: 0.75rem;
  font-weight: 400;
}

.receipt-doc__no {
  text-align: right;
  color: var(--mp-color-muted);
  font-size: 0.85rem;
}

.receipt-doc__title {
  font-family: var(--mp-font-ui);
  font-size: 1.5rem;
  font-weight: 700;
  margin: 1rem 0 1.5rem;
}

.receipt-doc__addr {
  margin-bottom: 1.5rem;
  line-height: 1.5;
}

.receipt-doc__muted {
  color: var(--mp-color-muted);
  font-size: 0.85rem;
}

.receipt-doc table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.5rem 0;
}

.receipt-doc th,
.receipt-doc td {
  padding: 0.5rem 0.25rem;
  text-align: left;
  border-bottom: 1px solid var(--mp-color-border-soft);
}

.receipt-doc th {
  font-family: var(--mp-font-ui);
  font-weight: 600;
  color: var(--mp-color-muted);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.receipt-doc td.amount {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.receipt-doc__total {
  font-size: 1.1rem;
  font-weight: 700;
}

.receipt-doc__sign {
  margin-top: 3rem;
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  color: var(--mp-color-muted);
  font-size: 0.85rem;
}

.receipt-doc__sign div {
  flex: 1;
}

.receipt-doc__sign hr {
  border-top: 1px solid var(--mp-color-text);
  margin-bottom: 0.25rem;
}

@media print {
  body,
  body.page-member-portal {
    background: #fff !important;
  }
  .mp-drawer, .mp-scrim, .mp-topbar, .nav-main, .footer, .receipt-actions, .nav-sub, .breadcrumbs, .frame, header, .navbar {
    display: none !important;
  }
  .container, .row, .col, .col-12, .receipt-page {
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .receipt-doc {
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
  }
  @page {
    size: A4;
    margin: 1.8cm;
  }
}
.federation-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
  margin-bottom: 1rem;
}

.federation-doc {
  background: var(--mp-color-surface);
  border: 1px solid var(--mp-color-border-soft);
  border-radius: var(--mp-radius, 8px);
  padding: 2.5rem 2rem;
  font-family: var(--mp-font-body);
  color: var(--mp-color-text);
}

.federation-edit__row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem;
  padding: 0.5rem 0;
}
.federation-edit__row + .federation-edit__row {
  border-top: 1px solid var(--mp-color-border-soft);
}

.federation-edit__pitch {
  font-family: var(--mp-font-ui);
  font-weight: 600;
  min-width: 5rem;
}

.federation-edit__official {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0;
}

.federation-edit__uid {
  max-width: 16rem;
  font-variant-numeric: tabular-nums;
}

.federation-doc__official {
  margin: 0 0 1rem;
  font-size: 0.95rem;
}

.federation-doc__official-item {
  display: inline-block;
  margin-right: 1.5rem;
  font-variant-numeric: tabular-nums;
}

.federation-doc__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.federation-doc__title {
  font-family: var(--mp-font-ui);
  font-size: 1.5rem;
  font-weight: 700;
}

.federation-doc__match {
  font-family: var(--mp-font-ui);
  font-size: 1.05rem;
  margin-top: 0.25rem;
}

.federation-doc__meta {
  text-align: right;
  color: var(--mp-color-muted);
  font-size: 0.85rem;
  line-height: 1.5;
}

.federation-doc__muted {
  color: var(--mp-color-muted);
  font-size: 0.85rem;
}

.federation-doc__hint {
  border-left: 3px solid var(--mp-color-accent);
  background: var(--mp-color-accent-light);
  padding: 0.75rem 1rem;
  border-radius: var(--mp-radius, 8px);
  font-size: 0.9rem;
  margin: 1rem 0 1.5rem;
}

.federation-doc__scroll {
  overflow-x: auto;
}

.federation-doc__table {
  width: 100%;
  border-collapse: collapse;
  margin: 1rem 0;
  font-size: 0.92rem;
}

.federation-doc__table th,
.federation-doc__table td {
  padding: 0.45rem 0.35rem;
  text-align: left;
  border-bottom: 1px solid var(--mp-color-border-soft);
  white-space: nowrap;
}

.federation-doc__table th {
  font-family: var(--mp-font-ui);
  font-weight: 600;
  color: var(--mp-color-muted);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.federation-doc__name {
  font-weight: 600;
}

.federation-doc__date,
.federation-doc__federation,
.federation-doc__num {
  font-variant-numeric: tabular-nums;
}

.federation-doc__num,
.federation-doc__flag {
  text-align: center;
  width: 1%;
}

.federation-doc__row--missing {
  background: var(--mp-color-surface-muted);
}

.federation-doc__missing {
  font-weight: 700;
  text-decoration: underline dotted;
  text-underline-offset: 2px;
}

.federation-doc__foot {
  margin-top: 2rem;
  color: var(--mp-color-muted);
  font-size: 0.8rem;
}

@media print {
  body,
  body.page-member-portal {
    background: #fff !important;
  }
  .mp-drawer, .mp-scrim, .mp-topbar, .nav-main, .footer, .federation-actions,
  .federation-edit, .nav-sub, .breadcrumbs, .frame, header, .navbar {
    display: none !important;
  }
  .container, .row, .col, .col-12, .federation-page {
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .federation-doc {
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
  }
  .federation-doc__scroll {
    overflow: visible !important;
  }
  .federation-doc__hint {
    background: none !important;
  }
  .federation-doc__table thead {
    display: table-header-group;
  }
  .federation-doc__table tr {
    page-break-inside: avoid;
  }
  @page {
    size: A4;
    margin: 1.8cm;
  }
}
.fp-page {
  --fp-bg: var(--mp-color-surface-muted, #F2F2F7);
  --fp-surface: var(--mp-color-surface, #FFFFFF);
  --fp-text: var(--mp-color-text, #0A0A0B);
  --fp-muted: var(--mp-color-muted, #6C6C72);
  --fp-line: var(--mp-color-border-soft, rgba(10, 10, 11, 0.08));
  --fp-accent: var(--mp-color-brand, #0A0A0B);
  --fp-radius: 22px;
  --fp-radius-sm: 12px;
  --fp-font: -apple-system, system-ui, "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif;
  --fp-font-heading: var(--mp-font-brand, var(--fp-font));
  color: var(--fp-text);
  font-family: var(--fp-font);
  line-height: 1.6;
}

.fp-wrap {
  margin: 0;
}

.fp-lead {
  margin: 0.25rem 0 1.5rem;
  color: var(--fp-muted);
}

.fp-muted {
  color: var(--fp-muted);
}

.fp-match {
  display: grid;
  grid-template-columns: 6.5rem 1fr auto auto;
  align-items: center;
  gap: 0.75rem;
  padding: 0.8rem 0;
  border-top: 1px solid var(--fp-line);
}
.fp-match:first-of-type {
  border-top: 0;
}

.fp-match--mine .fp-team {
  font-weight: 700;
}

.fp-match__when {
  font-size: 0.9rem;
  line-height: 1.35;
}

.fp-match__teams {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.4rem;
}

.fp-match__where {
  flex-basis: 100%;
  font-size: 0.85rem;
}

.fp-match__score {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.fp-vs {
  color: var(--fp-muted);
  font-size: 0.85rem;
}

@media (max-width: 560px) {
  .fp-match {
    grid-template-columns: 1fr auto;
    grid-template-areas: "when score" "teams action";
  }
  .fp-match__when {
    grid-area: when;
  }
  .fp-match__score {
    grid-area: score;
  }
  .fp-match__teams {
    grid-area: teams;
  }
  .fp-match__action {
    grid-area: action;
  }
}
.fp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 13px 24px;
  border: 0;
  border-radius: 999px;
  background: var(--fp-text);
  color: var(--fp-surface);
  font-family: inherit;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
}
.fp-btn:hover {
  opacity: 0.88;
}

.fp-btn--sm {
  min-height: 38px;
  padding: 8px 16px;
  font-size: 0.9rem;
}

.fp-btn--ghost {
  background: transparent;
  color: var(--fp-text);
}

.fp-dialog {
  border: 0;
  border-radius: var(--fp-radius);
  padding: 1.5rem;
  width: min(28rem, 100vw - 2rem);
  background: var(--fp-surface);
  color: var(--fp-text);
  font-family: var(--fp-font);
}
.fp-dialog::backdrop {
  background: rgba(10, 10, 11, 0.4);
}

.fp-dialog__title {
  margin: 0 0 1.25rem;
  font-size: 1.05rem;
  font-weight: 800;
}

.fp-dialog__hint {
  margin: 1rem 0 0;
  font-size: 0.85rem;
}

.fp-dialog__actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-top: 1.25rem;
}

.fp-goal {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 0.75rem;
}

.fp-goal__side {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  text-align: center;
  font-size: 0.85rem;
}

.fp-goal__colon {
  padding-bottom: 0.75rem;
  font-size: 1.5rem;
  font-weight: 800;
}

.fp-goal__input {
  width: 5rem;
  padding: 0.6rem;
  border: 1px solid var(--fp-line);
  border-radius: var(--fp-radius-sm);
  background: var(--fp-bg);
  color: var(--fp-text);
  font-family: inherit;
  font-size: 1.75rem;
  font-weight: 700;
  text-align: center;
}

.fp-scroll {
  overflow-x: auto;
}

.fp-table {
  width: 100%;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
}

.fp-table th,
.fp-table td {
  padding: 0.5rem 0.4rem;
  text-align: left;
  white-space: nowrap;
  border-bottom: 1px solid var(--fp-line);
}

.fp-table th {
  color: var(--fp-muted);
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.fp-table__team {
  width: 99%;
  white-space: normal;
}

.fp-row--mine {
  font-weight: 700;
}

.fp-foot {
  margin: 0.5rem 0 0;
  color: var(--fp-muted);
  font-size: 0.85rem;
}

.fp-brand {
  margin: 2rem 0 0;
  text-align: center;
  color: var(--fp-muted);
  font-size: 0.8rem;
}

.fp-brand__link {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid var(--fp-line);
}
.fp-brand__link:hover, .fp-brand__link:focus-visible {
  border-bottom-color: currentColor;
}

.fp-filter {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin: 0 0 1rem;
  padding: 0 0.25rem;
}

.fp-filter__label {
  color: var(--fp-muted);
  font-size: 0.95rem;
  font-weight: 600;
}

.fp-filter__select {
  flex: 1 1 14rem;
  max-width: 22rem;
  min-height: 44px;
  padding: 0.5rem 0.75rem;
  font: inherit;
  color: inherit;
  background: var(--fp-surface);
  border: 1px solid var(--fp-line);
  border-radius: var(--fp-radius-sm);
}

.mp-venue-list {
  display: flex;
  flex-direction: column;
}

.mp-venue {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  padding: 0.9rem 0;
  border-top: 1px solid var(--mp-color-border);
}
.mp-venue:first-child {
  border-top: 0;
  padding-top: 0;
}

.mp-venue--blocked {
  box-shadow: inset 3px 0 0 0 var(--mp-color-warning, #e0a800);
  padding-left: 0.75rem;
}

.mp-venue--new {
  border-top: 1px solid var(--mp-color-border);
  margin-top: 0.25rem;
}

.mp-venue__head {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.mp-venue__head code {
  font-size: 12px;
  color: var(--mp-color-text-muted, #666);
}

.mp-venue__departments {
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
}

.mp-venue__checks {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 0.35rem 1rem;
}

.mp-venue > form {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.mp-venue__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.25rem;
}

.mp-venue__actions {
  display: flex;
  gap: 0.5rem;
  margin-left: auto;
}

.mp-perm-checks {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 0.35rem 1rem;
}

.mp-perm-foot {
  display: flex;
  justify-content: flex-end;
  margin-top: 0.85rem;
}

.mp-perm-legend {
  margin-top: 1rem;
  padding: 0.85rem 1rem;
  border-left: 3px solid var(--mp-color-border);
  color: var(--mp-color-text-muted, #666);
  font-size: 14px;
}

.mp-login-page__grid {
  display: grid;
  gap: 1.5rem;
}
@media (min-width: 768px) {
  .mp-login-page__grid {
    grid-template-columns: 1fr 1fr;
  }
}

.mp-login-page__explain {
  color: var(--mp-color-text-2);
}
@media (min-width: 768px) {
  .mp-login-page__explain {
    border-left: 1px solid var(--mp-color-border-soft);
    padding-left: 1.5rem;
  }
}
@media (max-width: 767.98px) {
  .mp-login-page__explain {
    border-top: 1px solid var(--mp-color-border-soft);
    padding-top: 1rem;
  }
}
.mp-login-page__explain p {
  margin-bottom: 0.6rem;
}

.mp-profile__actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 0.85rem;
}

.mp-tournament-team__edit {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0.4rem 0.75rem;
}

.member-portal .card-header.bg-dark,
.member-portal .card-header.bg-primary,
.member-portal .card-header.bg-primary-subtle,
.member-portal .card-header.bg-secondary,
.member-portal .card-header.text-bg-dark,
.member-portal .card-header.text-bg-primary {
  background: var(--mp-color-accent-light) !important;
  color: var(--mp-color-accent-text) !important;
  border-bottom: 1px solid var(--mp-color-border-soft);
  font-family: var(--mp-font-ui);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 12px;
}

.member-portal .card-header.bg-dark i,
.member-portal .card-header.bg-primary i,
.member-portal .card-header.bg-primary-subtle i,
.member-portal .card-header.bg-secondary i,
.member-portal .card-header.text-bg-dark i,
.member-portal .card-header.text-bg-primary i {
  color: var(--mp-color-accent-text) !important;
}

.member-portal .btn-primary {
  background: var(--mp-color-brand);
  border-color: var(--mp-color-brand);
  color: #fff;
}

.member-portal .btn-primary:hover {
  background: var(--mp-color-brand-hover);
  border-color: var(--mp-color-brand-hover);
  color: #fff;
}

.member-portal .btn-outline-primary {
  color: var(--mp-color-brand);
  border-color: var(--mp-color-brand);
  background: transparent;
}

.member-portal .btn-outline-primary:hover {
  background: var(--mp-color-brand);
  border-color: var(--mp-color-brand);
  color: #fff;
}
