/* ===================================================
   HaloFinance — Theme Colours (#0A1E34 Halo Navy)
=================================================== */
:root {
    --rz-primary:                   #0A1E34;
    --rz-primary-dark:              #060e1d;
    --rz-primary-light:             #1a3a5c;
    --rz-primary-lighter:           #2a5a8a;
    --rz-primary-lightest:          #e4eaf0;
    --rz-body-background-color:     #D6E1EC;
    --rz-content-background-color:  #D6E1EC;
}

body { background-color: #D6E1EC !important; font-family: 'Lato', sans-serif !important; }
.rz-body, .rz-content { background-color: #D6E1EC !important; }

/* Full-height grid pages — prevent page-level scroll */
body:has(.page-fullgrid) { overflow: hidden; }
body:has(.page-fullgrid) .rz-body { overflow: hidden; }
body:has(.public-layout) { background-color: #0A1E34 !important; }
.public-layout .rz-body,
.public-layout .rz-content { background-color: #0A1E34 !important; }

/* Header */
.rz-header {
    background-color: #0A1E34 !important;
    border-bottom: none !important;
}

/* Sidebar */
.rz-sidebar {
    background-color: #0A1E34 !important;
    border-right: 1px solid #1a3a5c !important;
    --rz-panel-menu-background:              #0A1E34;
    --rz-panel-menu-item-background:         transparent;
    --rz-panel-menu-item-hover-background:   rgba(255,255,255,0.10);
    --rz-panel-menu-item-active-background:  rgba(255,255,255,0.18);
    --rz-panel-menu-item-color:              rgba(255,255,255,0.85);
    --rz-panel-menu-item-hover-color:        #ffffff;
    --rz-panel-menu-item-active-color:       #ffffff;
    --rz-panel-menu-item-icon-color:         rgba(255,255,255,0.75);
    --rz-panel-background-color:             #0A1E34;
}
.rz-sidebar *,
.rz-sidebar .rz-panel-menu,
.rz-sidebar .rz-panel-menu-item,
.rz-sidebar .rz-panel-menu-item-link {
    background-color: transparent !important;
    color: rgba(255,255,255,0.85) !important;
}
.rz-sidebar .rz-panel-menu-item-icon,
.rz-sidebar .rzi {
    color: rgba(255,255,255,0.75) !important;
}
.rz-sidebar .rz-panel-menu-item-link:hover {
    background-color: rgba(255,255,255,0.10) !important;
}
.rz-sidebar .rz-panel-menu-item-link.rz-state-active {
    background-color: rgba(255,255,255,0.18) !important;
}

/* Sidebar toggle icon */
.rz-sidebar-toggle .rzi { color: rgba(255,255,255,0.85) !important; }

/* Data grid — row action buttons */
.rz-data-grid td .rz-button,
.rz-data-grid td .rz-button.rz-light,
.rz-data-grid td .rz-button.rz-secondary,
.rz-data-grid td .rz-button.rz-danger {
    background-color: #0A1E34 !important;
    border-color:     #0A1E34 !important;
    color:            #ffffff  !important;
}
.rz-data-grid td .rz-button .rzi,
.rz-data-grid td .rz-button span {
    color: #ffffff !important;
}
.rz-data-grid td .rz-button:hover {
    background-color: #1a3a5c !important;
    border-color:     #1a3a5c !important;
}

/* Data grid — rounded corners */
.rz-data-grid {
    border-radius: 8px !important;
    overflow: hidden !important;
}

/* Data grid */
.rz-data-grid td,
.rz-data-grid .rz-cell-data {
    color: #0A1E34 !important;
}
.rz-data-grid th,
.rz-data-grid .rz-column-title,
.rz-data-grid .rz-column-title-content {
    color: #0A1E34 !important;
    font-weight: 700 !important;
}

/* Button content vertical alignment */
.rz-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
}
.rz-button .rz-button-box {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.25rem;
    line-height: 1 !important;
}
.rz-button .rz-button-icon-left,
.rz-button .rz-button-icon-right {
    display: inline-flex !important;
    align-items: center !important;
    line-height: 1 !important;
}

/* Primary button colour */
.rz-button.rz-primary {
    background-color: #0A1E34 !important;
    border-color:     #0A1E34 !important;
    color:            #ffffff  !important;
}
.rz-button.rz-primary:hover {
    background-color: #1a3a5c !important;
    border-color:     #1a3a5c !important;
}
.rz-button.rz-primary:active {
    background-color: #060e1d !important;
    border-color:     #060e1d !important;
}

/* Input label colour */
:root {
    --rz-form-field-label-color:  #0A1E34;
    --rz-float-label-color:       #0A1E34;
    --rz-label-color:             #0A1E34;
}
label,
.rz-label,
.rz-form-field-label,
.rz-float-label,
.rz-form-field > label,
.rz-form-field legend {
    color: #0A1E34 !important;
}

/* Input border colour */
:root {
    --rz-input-border-color:               #0A1E34;
    --rz-input-hover-border-color:         #1a3a5c;
    --rz-input-focus-border-color:         #1a3a5c;
    --rz-form-field-border-color:          #0A1E34;
    --rz-form-field-outlined-border-color: #0A1E34;
}
.rz-form-field-content,
.rz-form-field.rz-variant-outlined .rz-form-field-content {
    border-color: #0A1E34 !important;
}
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),
textarea,
.rz-textbox,
.rz-inputtext,
.rz-textarea,
.rz-dropdown,
.rz-multiselect,
.rz-autocomplete,
.rz-numeric,
.rz-datepicker {
    border-color: #0A1E34 !important;
}

/* Dropdown list items */
.rz-dropdown-item,
.rz-dropdown-item span,
.rz-listbox-item,
.rz-listbox-item span,
.rz-multiselect-item,
.rz-multiselect-item span {
    color: #0A1E34 !important;
}

/* Input text colour — all inputs app-wide */
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),
textarea,
.rz-textbox,
.rz-inputtext,
.rz-numeric-input,
.rz-textarea,
.rz-dropdown-label,
.rz-multiselect-label,
.rz-autocomplete input {
    color: #0A1E34 !important;
}

/* Tab labels */
:root {
    --rz-tabview-nav-link-color:               #0A1E34;
    --rz-tabview-nav-link-hover-color:         #0A1E34;
    --rz-tabview-nav-link-active-color:        #0A1E34;
    --rz-tabview-nav-link-active-border-color: #0A1E34;
}
.rz-tabview-nav-link,
.rz-tabview-nav a,
.rz-tabview-nav span {
    color: #0A1E34 !important;
}
.rz-tabview-nav-link.rz-state-active,
.rz-state-active .rz-tabview-nav-link,
.rz-state-active > a,
.rz-tabview-nav li.rz-state-active a,
.rz-tabview-nav li.rz-state-active span {
    color: #0A1E34 !important;
    font-weight: 700 !important;
}

/* Page heading colour */
h1, h2, h3, h4, h5, h6,
.rz-text-h1, .rz-text-h2, .rz-text-h3,
.rz-text-h4, .rz-text-h5, .rz-text-h6 {
    color: #0A1E34 !important;
}

/* ===================================================
   HaloFinance — Global Styles
=================================================== */

/* Login page */
.login-body {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: #0A1E34 !important;
    font-family: Arial, sans-serif;
}

.login-container {
    width: 100%;
    max-width: 420px;
    padding: 16px;
}

.login-card {
    background: #fff;
    border-radius: 8px;
    padding: 40px 36px;
    box-shadow: 0 2px 16px rgba(0,0,0,0.10);
}

.login-header {
    text-align: center;
    margin-bottom: 28px;
}

.login-header h1 {
    color: #0A1E34;
    margin: 0 0 4px;
    font-size: 24px;
}

.login-header p {
    color: #666;
    margin: 0;
    font-size: 15px;
}

.login-error {
    background: #fff0f0;
    color: #c0392b;
    border: 1px solid #f5c6cb;
    border-radius: 4px;
    padding: 10px 14px;
    margin-bottom: 16px;
    font-size: 14px;
}

.login-success {
    background: #f0fff4;
    color: #27ae60;
    border: 1px solid #b7e5c7;
    border-radius: 4px;
    padding: 10px 14px;
    margin-bottom: 16px;
    font-size: 14px;
}

.form-group {
    margin-bottom: 16px;
}

.form-group label {
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
    font-size: 14px;
    color: #333;
}

.form-control {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 15px;
    outline: none;
    transition: border-color 0.2s;
}

.form-control:focus { border-color: #161A45; }

.btn-login {
    width: 100%;
    padding: 12px;
    background: #161A45;
    color: #fff;
    border: none;
    border-radius: 4px;
    font-size: 16px;
    cursor: pointer;
    margin-top: 8px;
    transition: background 0.2s;
}

.btn-login:hover { background: #1f2460; }

/* ===================================================
   Quote tool — public page
=================================================== */
.quote-page {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 16px;
}

.quote-controls {
    max-width: 1200px;
    margin: 0 auto;
    width: 100%;
}

.quote-preview {
    overflow: hidden;
    border: 1px solid #ffffff;
    border-radius: 6px;
    background: #fafafa;
    padding: 0;
    max-width: 1200px;
    margin: 0 auto;
    width: 100%;
}


.tier-hint {
    display: block;
    color: #888;
    font-size: 12px;
    margin-top: 4px;
}

.halo-splash {
    position: fixed;
    inset: 0;
    background: #0A1E34;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    animation: halo-splash-fade 0.6s ease 1.2s forwards;
    pointer-events: none;
}

@keyframes halo-splash-fade {
    from { opacity: 1; }
    to   { opacity: 0; }
}

.quote-loading {
    padding: 48px;
    text-align: center;
    color: #888;
    font-size: 18px;
}

/* ===================================================
   Unavailable page
=================================================== */
.unavailable-page {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 60vh;
    padding: 32px;
}

.unavailable-card {
    max-width: 480px;
    text-align: center;
    background: #fff;
    padding: 40px;
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.08);
}

.unavailable-card h2 { color: #161A45; }

/* ===================================================
   Admin — branding preview iframe fade
=================================================== */
.halo-preview-faded { opacity: 0.35; }

/* ===================================================
   Admin — logo preview
=================================================== */
.logo-preview {
    margin-top: 8px;
    padding: 12px;
    background: #f5f5f5;
    border: 1px solid #ddd;
    border-radius: 4px;
    display: inline-block;
}
