/*
 * Page-level visual rules moved out of Django templates.
 * Sections are grouped by their source template for easy manual editing.
 */

[data-marzin-progress] {
    width: var(--marzin-progress-width, 0%);
}

.announcement-color-swatch[data-rich-color="#0f263a"] {
    --swatch-color: #0f263a;
}

.announcement-color-swatch[data-rich-color="#e11d48"] {
    --swatch-color: #e11d48;
}

.announcement-color-swatch[data-rich-color="#c2410c"] {
    --swatch-color: #c2410c;
}

.announcement-color-swatch[data-rich-color="#15803d"] {
    --swatch-color: #15803d;
}

.announcement-color-swatch[data-rich-color="#1d4ed8"] {
    --swatch-color: #1d4ed8;
}

.announcement-color-swatch[data-rich-color="#7e22ce"] {
    --swatch-color: #7e22ce;
}

/* accounts/citizen_admin_detail.html */

.marzin-citizen-admin-detail-01 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}

.marzin-citizen-admin-detail-02 {
    margin-bottom: .35rem;
}

.marzin-citizen-admin-detail-03 {
    color: #64748b;
}

.marzin-citizen-admin-detail-04 {
    color: #b91c1c;
}

.marzin-citizen-admin-detail-05 {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
}

.marzin-citizen-admin-detail-06 {
    margin: 0;
}

.marzin-citizen-admin-detail-07 {
    margin-top: 1.5rem;
}

.marzin-citizen-admin-detail-08 {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(190px,1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.marzin-citizen-admin-detail-09 {
    margin-top: 1.5rem;
}

.marzin-citizen-admin-detail-10 {
    margin-top: 1rem;
}

/* accounts/citizen_admin_form.html */

.marzin-citizen-admin-form-01 {
    max-width: 850px;
    margin: 0 auto;
}

.marzin-citizen-admin-form-02 {
    color: #64748b;
    margin-top: .5rem;
    margin-bottom: 1.5rem;
}

.marzin-citizen-admin-form-03 {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(250px,1fr));
    gap: 1rem;
}

.marzin-citizen-admin-form-04 {
    color: #b91c1c;
    margin-top: .35rem;
}

.marzin-citizen-admin-form-05 {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    margin-top: 2rem;
}

/* accounts/citizen_admin_password_reset.html */

.marzin-citizen-admin-password-reset-01 {
    max-width: 650px;
    margin: 0 auto;
}

.marzin-citizen-admin-password-reset-02 {
    margin-top: 1rem;
    padding: 1rem;
    background: #f8fafc;
    border-radius: 10px;
}

.marzin-citizen-admin-password-reset-03 {
    margin-top: .35rem;
}

.marzin-citizen-admin-password-reset-04 {
    margin-top: 1rem;
    padding: .75rem 1rem;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    background: #f8fafc;
    color: #334155;
    line-height: 1.9;
}

.marzin-citizen-admin-password-reset-05 {
    margin-top: 1.5rem;
}

.marzin-citizen-admin-password-reset-06 {
    margin-bottom: 1rem;
}

.marzin-citizen-admin-password-reset-07 {
    position: relative;
}

.marzin-citizen-admin-password-reset-08 {
    margin-top: .45rem;
    padding: .35rem .7rem;
}

.marzin-citizen-admin-password-reset-09 {
    margin-top: .4rem;
    color: #475569;
    font-size: .86rem;
    line-height: 1.8;
}

.marzin-citizen-admin-password-reset-10 {
    color: #b91c1c;
    margin-top: .35rem;
}

.marzin-citizen-admin-password-reset-11 {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
}

/* accounts/organizational_user_form.html */

.marzin-organizational-user-form-01 {
    max-width: 900px;
    margin: 0 auto;
}

.marzin-organizational-user-form-02 {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 1rem;
}

.marzin-organizational-user-form-03 {
    color: #dc2626;
}

.marzin-organizational-user-form-04 {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    margin-top: 2rem;
}

/* accounts/user_management_list.html */

.marzin-user-management-list-01 {
    margin: 0;
}

.marzin-user-management-list-02 {
    margin: 0;
}

/* appointments/appointment_request_edit.html */

.marzin-appointment-request-edit-01 {
    margin-top: 1rem;
}

.marzin-appointment-request-edit-02 {
    margin-top: 1.5rem;
}

.marzin-appointment-request-edit-03 {
    margin-top: 1.5rem;
}

.marzin-appointment-request-edit-04 {
    margin-top: 1.5rem;
}

.marzin-appointment-request-edit-05 {
    margin-top: 1.5rem;
}

.marzin-appointment-request-edit-06 {
    margin-top: 1rem;
}

.marzin-appointment-request-edit-07 {
    margin-top: 1.5rem;
}

.marzin-appointment-request-edit-08 {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 2rem;
}

/* appointments/appointment_rule_form.html */

.marzin-appointment-rule-form-01 {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
}

/* appointments/appointment_rule_list.html */

.marzin-appointment-rule-list-01 {
    display: inline;
}

/* appointments/appointment_slot_form.html */

.marzin-appointment-slot-form-01 {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
}

/* appointments/appointment_slot_list.html */

.marzin-appointment-slot-list-01 {
    display: block;
    color: #b45309;
}

.marzin-appointment-slot-list-02 {
    display: inline;
}

/* appointments/my_appointments.html */

.marzin-my-appointments-01 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.marzin-my-appointments-02 {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.marzin-my-appointments-03 {
    flex: 0 0 auto;
}

.marzin-my-appointments-04 {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}

.marzin-my-appointments-05 {
    flex: 0 0 auto;
}

.marzin-my-appointments-06 {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

/* appointments/slot_template_apply.html */

.marzin-slot-template-apply-01 {
    margin-top: 1rem;
}

.marzin-slot-template-apply-02 {
    margin-top: 1rem;
}

.marzin-slot-template-apply-03 {
    margin-top: 1.5rem;
}

/* appointments/slot_template_list.html */

.marzin-slot-template-list-01 {
    margin-top: 1rem;
}

.marzin-slot-template-list-02 {
    margin-top: 1.5rem;
}

.marzin-slot-template-list-03 {
    margin-bottom: .35rem;
}

.marzin-slot-template-list-04 {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}

.marzin-slot-template-list-05 {
    margin-top: 1.5rem;
}

/* appointments/system_admin_extra_quota.html */

.marzin-system-admin-extra-quota-01 {
    display: grid;
    gap: 1.25rem;
}

.marzin-system-admin-extra-quota-02 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.marzin-system-admin-extra-quota-03 {
    margin-bottom: .4rem;
}

.marzin-system-admin-extra-quota-04 {
    color: #64748b;
}

.marzin-system-admin-extra-quota-05 {
    color: #475569;
    line-height: 1.9;
}

.marzin-system-admin-extra-quota-06 {
    display: grid;
    gap: 1rem;
    max-width: 760px;
}

.marzin-system-admin-extra-quota-07 {
    display: block;
    color: #64748b;
    margin-top: .4rem;
}

.marzin-system-admin-extra-quota-08 {
    margin-top: 1rem;
}

.marzin-system-admin-extra-quota-09 {
    white-space: normal;
    min-width: 220px;
}

/* appointments/system_admin_special_booking.html */

.marzin-system-admin-special-booking-01 {
    display: grid;
    gap: 1.25rem;
}

.marzin-system-admin-special-booking-02 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.marzin-system-admin-special-booking-03 {
    margin-bottom: .4rem;
}

.marzin-system-admin-special-booking-04 {
    color: #64748b;
}

.marzin-system-admin-special-booking-05 {
    line-height: 1.9;
}

.marzin-system-admin-special-booking-06 {
    display: grid;
    gap: 1rem;
    margin-top: 1rem;
}

.marzin-system-admin-special-booking-07 {
    display: block;
    color: #64748b;
    margin-top: .4rem;
}

.marzin-system-admin-special-booking-08 {
    margin-top: 1rem;
}

.marzin-system-admin-special-booking-09 {
    white-space: normal;
    min-width: 220px;
}

/* borders/early_crossing_permission_list.html */

.marzin-early-crossing-permission-list-01 {
    margin-top: 1rem;
}

/* borders/late_crossing_permission_list.html */

.marzin-late-crossing-permission-list-01 {
    margin-top: 1rem;
}

/* core/cancellation_penalty_rule_form.html */

.marzin-cancellation-penalty-rule-form-01 {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
}

/* core/cancellation_penalty_rule_list.html */

.marzin-cancellation-penalty-rule-list-01 {
    display: inline;
}

/* core/system_setting_form.html */

.marzin-system-setting-form-01 {
    margin-bottom: 1rem;
}

/* households/household_policy_form.html */

.marzin-household-policy-form-01 {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
}

/* includes/footer.html */

.marzin-footer-01 {
    cursor: pointer;
}

/* wallets/admin_topup_request_list.html */

.marzin-admin-topup-request-list-01 {
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}

.marzin-admin-topup-request-list-02 {
    display: flex;
    gap: 0.75rem;
    align-items: center;
}

.marzin-admin-topup-request-list-03 {
    display: inline;
}

.marzin-admin-topup-request-list-04 {
    display: inline;
}

/* wallets/wallet_topup_form.html */

.marzin-wallet-topup-form-01 {
    margin-top: 1.5rem;
}

.marzin-wallet-topup-form-02 {
    line-height: 1.9;
}

.marzin-wallet-topup-form-03 {
    margin: 0.4rem 0 0;
}

.marzin-wallet-topup-form-04 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 1rem;
}

.marzin-wallet-topup-form-05 {
    cursor: pointer;
}

.marzin-wallet-topup-form-06 {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
}
