Add the management app: club-facing UI + real fee-payment tracking

Gives clubs a self-service /manage/ area for members, families, teams,
roles, and season memberships, alongside real fee-payment tracking
(FeePayment, record_payment/mark_as_paid/remaining_balance) so a
membership's paid status reflects actual money received instead of a
single manually-set flag.
This commit is contained in:
2026-08-03 17:01:15 +02:00
parent 5bea8a4a6c
commit 062da00bb9
44 changed files with 5095 additions and 11 deletions

View File

@@ -34,6 +34,8 @@
--font-weight-bold: 700;
--tracking-wide: 0.025em;
--tracking-wider: 0.05em;
--ease-out: cubic-bezier(0, 0, 0.2, 1);
--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
--default-transition-duration: 150ms;
--default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
--default-font-family: var(--font-sans);
@@ -3310,6 +3312,9 @@
.border-info {
border-color: var(--color-info);
}
.border-neutral {
border-color: var(--color-neutral);
}
.border-success {
border-color: var(--color-success);
}
@@ -3429,9 +3434,6 @@
.object-contain {
object-fit: contain;
}
.p-1 {
padding: var(--spacing);
}
.p-2 {
padding: calc(var(--spacing) * 2);
}
@@ -3666,6 +3668,9 @@
text-decoration-line: none;
}
}
.opacity-40 {
opacity: 40%;
}
.opacity-50 {
opacity: 50%;
}
@@ -3726,6 +3731,17 @@
}
}
}
.select-sm {
@layer daisyui.l1.l2 {
--sl-size-mul: 8;
--font-size-min: 0.75rem;
--option-px: 2.5;
.floating-label:has(&) {
--top-mul: 4;
--font-size: 0.75rem;
}
}
}
.btn-neutral {
@layer daisyui.l1.l2 {
--btn-color: var(--color-neutral);
@@ -3748,6 +3764,13 @@
--btn-soft-bg: initial;
}
}
.btn-info {
@layer daisyui.l1.l2 {
--btn-color: var(--color-info);
--btn-fg: var(--color-info-content);
--btn-soft-bg: initial;
}
}
.btn-primary {
@layer daisyui.l1.l2 {
--btn-color: var(--color-primary);