/* ============================================================
   beni-components.css
   Shared component styles for Beni.Web.
   These styles are used across 2+ Razor components.
   Do NOT add single-use styles here — use component .razor.css files instead.
   ============================================================ */

/* --- Print Utilities ---
   Used by: AnnualIncome, Delinquency, DepositReport, PropertySummary,
            Occupancy, TenantStatement, LeaseExpirations
   ------------------------------------------------------------ */
@media print {
    .no-print { display: none !important; }
    body { font-size: 12px; }
    .card { break-inside: avoid; }
    .print-only { display: block !important; }
}
.print-only { display: none; }

/* --- Page Background ---
   Used by: PaymentEdit, PaymentView, LeaseEdit, LeaseView, LeaseDelete,
            LeaseRenew, PropertyCreate, PropertyEdit, PropertyForm,
            TenantEdit, TenantView, TenantDelete, ActivityTimeline,
            Notifications, TestPhotoUpload, and others
   ------------------------------------------------------------ */
.modern-page {
    background: linear-gradient(135deg, #f5f7fa 0%, #e4e9f0 100%);
}

/* --- Text Gradient (blue) ---
   Used by: PaymentEdit, PaymentView, LeaseEdit, LeaseView, LeaseDelete,
            PropertyCreate, PropertyEdit, PropertyForm, PropertyListOld,
            TenantEdit, TenantView, TenantDelete, Notifications,
            AccruedRevenue, ActivityTimeline, TestPhotoUpload, and others
   ------------------------------------------------------------ */
.text-gradient {
    background: linear-gradient(45deg, #007bff, #00c4ff);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* --- Modern Card ---
   Standard card style used across the majority of page components.
   Used by: PaymentList, PaymentEdit, PaymentView, LeaseList, LeaseEdit,
            LeaseView, LeaseDelete, LeaseRenew, PropertyList, PropertyListOld,
            PropertyCreate, PropertyEdit, TenantList, TenantEdit, TenantView,
            TenantDelete, AccruedRevenue, Notifications, and others
   ------------------------------------------------------------ */
.modern-card {
    border: none;
    border-radius: 15px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

    .modern-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15);
    }

/* --- Modern Button (standard pill style) ---
   Used by: PaymentEdit, PaymentView, LeaseEdit, LeaseView, LeaseDelete,
            LeaseRenew, PropertyCreate, PropertyEdit, PropertyListOld,
            TenantEdit, TenantView, TenantDelete, AccruedRevenue,
            Notifications, ActivityTimeline, and others
   ------------------------------------------------------------ */
.modern-btn {
    border-radius: 25px;
    padding: 0.5rem 1.5rem;
    font-weight: 500;
    transition: all 0.3s ease;
}

    .modern-btn:hover {
        transform: translateY(-2px);
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    }

/* --- Modern Label ---
   Standard label style (without font-size override).
   Used by: PaymentEdit, LeaseEdit, LeaseView (implicit), PropertyEdit,
            PropertyListOld, TenantEdit, AddressPicker
   ------------------------------------------------------------ */
.modern-label {
    font-weight: 600;
    color: #495057;
    margin-bottom: 0.5rem;
}

/* --- Cursor Pointer Utility ---
   Used by: PaymentEdit, LeaseEdit, LeaseView, LeaseDelete, PropertyView,
            PropertyCreate, PropertyEdit, PropertyListOld, TenantEdit,
            TenantView, TenantDelete, Notifications, ActivityTimeline,
            Profile, and others
   ------------------------------------------------------------ */
.cursor-pointer {
    cursor: pointer;
}

/* --- Flash Error Animation ---
   Red border flash used for invalid form field feedback.
   Used by: PaymentEdit, LeaseEdit, TenantEdit, PropertyEdit
   ------------------------------------------------------------ */
.flash-error {
    border-color: #dc3545 !important;
    animation: flash 1s ease-in-out 2;
}

@keyframes flash {
    0%, 50%, 100% {
        border-color: #dc3545;
        box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
    }

    25%, 75% {
        border-color: #ced4da;
        box-shadow: none;
    }
}

/* --- Alert Info Override ---
   Translucent teal background for info alerts.
   Used by: PaymentEdit, LeaseEdit, LeaseRenew
   ------------------------------------------------------------ */
.alert-info {
    background-color: rgba(13, 202, 240, 0.1);
    border-color: rgba(13, 202, 240, 0.2);
}

/* --- Button Group with Modern Btn (pill corners) ---
   Renders a segmented button group where the outer edges are rounded
   and inner edges are squared.
   Used by: PaymentList, LeaseList, TenantList, PropertyList, PropertyListOld
   ------------------------------------------------------------ */
.btn-group .modern-btn {
    border-radius: 0;
    padding: 0.5rem 1rem;
    border: 1px solid;
    margin: 0;
    transform: none;
    box-shadow: none;
}

    .btn-group .modern-btn:first-child {
        border-top-left-radius: 25px;
        border-bottom-left-radius: 25px;
    }

    .btn-group .modern-btn:last-child {
        border-top-right-radius: 25px;
        border-bottom-right-radius: 25px;
    }

    .btn-group .modern-btn:hover {
        transform: none;
        box-shadow: none;
        filter: brightness(90%);
    }

/* --- Section Header ---
   Divider line beneath a section title.
   Used by: PropertyForm, LeaseFormComponent, TenantFormComponent, Profile
   ------------------------------------------------------------ */
.section-header {
    border-bottom: 2px solid #e9ecef;
    padding-bottom: 1rem;
    margin-bottom: 1.5rem !important;
}

    .section-header h5 {
        color: #495057;
        font-weight: 600;
    }

/* --- Existing Data Card ---
   Grey card used when showing pre-existing entity data in a form context.
   Used by: PropertyForm, LeaseFormComponent, TenantFormComponent
   ------------------------------------------------------------ */
.existing-data-card {
    background: #f8f9fa;
    border: 1px solid #e9ecef;
    border-radius: 12px;
    padding: 1.5rem;
    transition: all 0.3s ease;
}

    .existing-data-card:hover {
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
        border-color: #007bff;
    }
