/*
 * Rental Pilot customer portal theme.
 * Shared token + component layer for the legacy ssr-app customer section,
 * ported from the ssr-react-web design system (Pilot Navy / Sky Azure) so the
 * legacy portal matches the new web/native look. Values are copied 1:1 from
 * the already-live inline styles in customer/login_view.php and from
 * ssr-react-web/src/index.css — do not invent new hex values here.
 */

:root {
    --rp-navy: #0A2E5D;
    --rp-navy-dark: #06203F;
    --rp-navy-darker: #04172d;
    --rp-azure: #2D8AFF;
    --rp-azure-dark: #1A62C8;
    --rp-azure-light: #78BEFF;
    --rp-bg: #F4F7FC;
    --rp-border: #D2DEED;
    --rp-border-subtle: #E3EAF3;
    --rp-text: #0E1B2E;
    --rp-text-soft: #5B6B82;
    --rp-text-muted: #92A6C2;

    --rp-error: #c0392b;
    --rp-error-bg: #fdecea;
    --rp-success: #27ae60;
    --rp-success-bg: #eafaf1;
    --rp-warning: #e67e22;
    --rp-warning-bg: #fdf2e3;

    --rp-radius-control: 11px;
    --rp-radius-card: 18px;
    --rp-radius-pill: 999px;

    --rp-font-heading: 'Poppins', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --rp-font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.rp-page {
    background-color: var(--rp-bg);
    font-family: var(--rp-font-body);
    color: var(--rp-text);
}

.rp-heading,
.rp-page h1,
.rp-page h2,
.rp-page h3 {
    font-family: var(--rp-font-heading);
    font-weight: 700;
    color: var(--rp-text);
}

/* ---------- Cards ---------- */

.rp-card {
    position: relative;
    background: #fff;
    border: 1px solid var(--rp-border-subtle);
    border-radius: var(--rp-radius-card);
    box-shadow: 0 6px 18px -10px rgba(8, 28, 58, .24);
    padding: 24px;
}

.rp-card-narrow {
    max-width: 480px;
    margin: 0 auto;
}

.rp-card-accent {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    border-radius: var(--rp-radius-card) var(--rp-radius-card) 0 0;
    background: linear-gradient(90deg, var(--rp-navy) 0%, var(--rp-azure) 100%);
}

/* ---------- Buttons ---------- */

.rp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 20px;
    border: none;
    border-radius: var(--rp-radius-control);
    font-family: var(--rp-font-body);
    font-weight: 600;
    font-size: 0.9375rem;
    text-decoration: none;
    cursor: pointer;
    transition: background-color .15s ease, box-shadow .15s ease, transform .05s ease;
}

.rp-btn:active {
    transform: scale(0.97);
}

.rp-btn-primary {
    color: #fff;
    background-color: var(--rp-azure);
    box-shadow: 0 8px 20px -8px rgba(45, 138, 255, .5);
}

.rp-btn-primary:hover,
.rp-btn-primary:focus {
    background-color: var(--rp-azure-dark);
    box-shadow: 0 6px 14px -8px rgba(45, 138, 255, .4);
    color: #fff;
    text-decoration: none;
}

.rp-btn-secondary {
    color: var(--rp-navy);
    background-color: #fff;
    border: 1px solid var(--rp-border);
}

.rp-btn-secondary:hover,
.rp-btn-secondary:focus {
    background-color: var(--rp-bg);
    color: var(--rp-navy);
    text-decoration: none;
}

.rp-btn-ghost {
    color: var(--rp-azure-dark);
    background-color: transparent;
}

.rp-btn-ghost:hover,
.rp-btn-ghost:focus {
    background-color: rgba(45, 138, 255, .08);
    color: var(--rp-azure-dark);
    text-decoration: none;
}

.rp-btn-danger {
    color: #fff;
    background-color: var(--rp-error);
}

.rp-btn-danger:hover,
.rp-btn-danger:focus {
    background-color: #a3312e;
    color: #fff;
    text-decoration: none;
}

.rp-btn-block {
    display: flex;
    width: 100%;
}

.rp-btn-sm {
    padding: 8px 14px;
    font-size: 0.8125rem;
    border-radius: 8px;
}

.rp-btn:disabled,
.rp-btn.disabled {
    opacity: .55;
    cursor: not-allowed;
    box-shadow: none;
}

/* ---------- Form controls ---------- */

.rp-label {
    display: block;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--rp-text);
    margin-bottom: 7px;
}

.rp-input,
.rp-page input[type="text"].rp-input,
.rp-page input[type="email"].rp-input,
.rp-page input[type="password"].rp-input,
.rp-page input[type="number"].rp-input,
.rp-page select.rp-input,
.rp-page textarea.rp-input {
    width: 100%;
    padding: 12px 14px;
    background: #fff;
    color: var(--rp-text);
    border: 1px solid var(--rp-border);
    border-radius: var(--rp-radius-control);
    font-family: var(--rp-font-body);
    font-size: 0.9375rem;
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.rp-input:focus {
    outline: none;
    border-color: var(--rp-azure);
    box-shadow: 0 0 0 4px rgba(45, 138, 255, .16);
}

.rp-field {
    margin-bottom: 18px;
}

.rp-field-error {
    color: var(--rp-error);
    font-size: 0.8125rem;
    margin-top: 4px;
}

/* ---------- Alerts ---------- */

.rp-alert {
    border-radius: var(--rp-radius-control);
    padding: 12px 16px;
    font-size: 0.9375rem;
    margin-bottom: 18px;
    border: 1px solid transparent;
}

.rp-alert-error {
    background-color: var(--rp-error-bg);
    border-color: #F3C6C6;
    color: var(--rp-error);
}

.rp-alert-success {
    background-color: var(--rp-success-bg);
    border-color: #b7e4c7;
    color: var(--rp-success);
}

.rp-alert-warning {
    background-color: var(--rp-warning-bg);
    border-color: #f5d7ae;
    color: var(--rp-warning);
}

/* ---------- Tables ---------- */

.rp-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
    border: 1px solid var(--rp-border-subtle);
    border-radius: var(--rp-radius-control);
    overflow: hidden;
}

.rp-table thead th {
    background-color: var(--rp-navy-darker);
    color: #fff;
    text-transform: uppercase;
    font-size: 0.75rem;
    letter-spacing: 0.04em;
    font-weight: 600;
    padding: 12px 14px;
    text-align: left;
}

.rp-table tbody td {
    padding: 12px 14px;
    font-size: 0.875rem;
    color: var(--rp-text);
    border-top: 1px solid var(--rp-border-subtle);
}

.rp-table tbody tr:hover {
    background-color: var(--rp-bg);
}

/* ---------- Badges / pills ---------- */

.rp-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: var(--rp-radius-pill);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.rp-badge-info {
    background-color: var(--rp-navy);
    color: #fff;
}

.rp-badge-neutral {
    background-color: var(--rp-border);
    color: var(--rp-navy);
}

.rp-badge-pending {
    background-color: var(--rp-warning-bg);
    color: var(--rp-warning);
}

.rp-badge-done {
    background-color: var(--rp-success-bg);
    color: var(--rp-success);
}

/* ---------- Standalone auth-card layout (login/signup/forgot/create/problem) ---------- */
/* Same recipe as the live customer/login_view.php: navy radial-gradient body
   background, centered white card, azure->navy top accent bar. */

.rp-auth-body {
    background-color: var(--rp-navy-dark);
    background-image: radial-gradient(ellipse 1100px 520px at 50% -10%, #103A72 0%, var(--rp-navy) 45%, var(--rp-navy-dark) 100%);
    background-attachment: fixed;
    min-height: 100vh;
    font-family: var(--rp-font-body);
}

.rp-auth-wrap {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 520px;
    margin: 64px auto;
    padding: 0 20px;
}

.rp-auth-wrap.rp-auth-wrap-wide {
    max-width: 720px;
}

.rp-auth-brand {
    text-align: center;
    margin-bottom: 24px;
}

.rp-auth-brand .rp-brand-name {
    font-family: var(--rp-font-heading);
    font-weight: 700;
    font-size: 1.625rem;
    color: #fff;
    letter-spacing: -0.01em;
}

.rp-auth-brand .rp-brand-sub {
    margin-top: 6px;
    font-size: 1rem;
    font-weight: 600;
    color: #8FC1FF;
}

.rp-auth-card {
    position: relative;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--rp-border-subtle);
    border-radius: 16px;
    box-shadow: 0 24px 48px -20px rgba(2, 12, 27, .55);
    padding: 32px 28px;
}

.rp-auth-card h1,
.rp-auth-card h2 {
    font-family: var(--rp-font-heading);
    font-weight: 700;
    font-size: 1.375rem;
    color: var(--rp-text);
    margin: 0 0 18px;
    text-align: center;
}

.rp-auth-card p.rp-auth-copy {
    color: var(--rp-text-soft);
    font-size: 0.9375rem;
    text-align: center;
    margin-bottom: 18px;
}
