:root {
    --psn-font: "Helvetica Neue", Helvetica, Arial, sans-serif;
    --psn-ink: #122033;
    --psn-navy: #17324d;
    --psn-blue: #0f8fce;
    --psn-blue-dark: #0c6fa4;
    --psn-orange: #f7941d;
    --psn-orange-dark: #d97904;
    --psn-orange-soft: #fff4e5;
    --psn-mint: #dff8ef;
    --psn-bg: #f6f8fb;
    --psn-card: #ffffff;
    --psn-border: #d9e2ec;
    --psn-muted: #62748a;
    --psn-shadow: 0 18px 45px rgba(18, 32, 51, 0.12);
    --primary-color: var(--psn-blue);
    --primary-hover: var(--psn-blue-dark);
    --secondary-color: var(--psn-muted);
    --background: var(--psn-bg);
    --card-bg: var(--psn-card);
    --border-color: var(--psn-border);
    --text-primary: var(--psn-ink);
    --text-secondary: var(--psn-muted);
}

html,
body,
button,
input,
select,
textarea,
.btn,
.form-control,
.form-label,
.card,
.modal,
.dropdown-menu {
    font-family: var(--psn-font) !important;
}

body {
    color: var(--psn-ink);
}

a {
    color: var(--psn-blue);
}

a:hover {
    color: var(--psn-blue-dark);
}

.btn-primary,
.btn-primary-important,
.btn-dashboard,
.reply-submit-btn {
    border-color: var(--psn-orange) !important;
    background: linear-gradient(135deg, var(--psn-orange) 0%, var(--psn-orange-dark) 100%) !important;
    color: #fff !important;
    font-family: var(--psn-font);
    font-weight: 800;
}

.btn-primary:hover,
.btn-primary-important:hover,
.btn-dashboard:hover,
.reply-submit-btn:hover {
    border-color: var(--psn-orange-dark) !important;
    box-shadow: 0 10px 24px rgba(247, 148, 29, 0.28) !important;
}

.form-control:focus,
.wizard-free-answer:focus,
.wizard-note:focus,
.wizard-grid input:focus,
.wizard-pin-input:focus {
    border-color: var(--psn-blue) !important;
    box-shadow: 0 0 0 0.2rem rgba(15, 143, 206, 0.18) !important;
}

.login-container,
.register-container,
.welcome-container,
.add-job-body {
    background:
        radial-gradient(circle at top left, rgba(15, 143, 206, 0.16), transparent 34%),
        linear-gradient(135deg, #f9fbfd 0%, #edf6fb 48%, #fff4e5 100%);
}

.login-card,
.register-card,
.welcome-card,
.company-selection-card,
.add-job-card {
    border: 1px solid rgba(217, 226, 236, 0.95);
    border-radius: 10px;
    box-shadow: var(--psn-shadow);
}

.login-card::before,
.register-card::before,
.welcome-card::before,
.success-container::before {
    content: "";
    display: block;
    width: min(260px, 72vw);
    height: 82px;
    margin: 0 auto 18px;
    background-image: url("/images/pool-safety-network-primary-orange.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.psn-logo {
    display: block;
    width: min(280px, 55vw);
    height: auto;
    object-fit: contain;
}

.psn-logo-sm {
    width: min(220px, 48vw);
}

.psn-logo-light {
    padding: 6px 10px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.94);
}

.header-brand {
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 0;
}

.header-brand h1 {
    margin: 0;
}

.add-job-brand {
    margin-bottom: 18px;
}

.login-title,
.register-title,
.welcome-title,
.add-job-header h1,
.wizard-step h2,
.header h1,
.job-reference,
.brand-title {
    color: var(--psn-navy) !important;
    font-family: var(--psn-font);
    font-weight: 800;
    letter-spacing: 0;
}

.login-subtitle,
.register-subtitle,
.welcome-subtitle,
.add-job-header p,
.wizard-help {
    color: var(--psn-muted) !important;
}

.forgot-password a,
.signin-link a,
.form-check-label a {
    color: var(--psn-blue) !important;
    font-weight: 800;
}

.divider span {
    color: var(--psn-muted);
}

.form-check-input:checked {
    background-color: var(--psn-blue) !important;
    border-color: var(--psn-blue) !important;
}

.profile-placeholder,
.info-icon,
.stat-icon,
.header,
.site-header {
    background: linear-gradient(135deg, var(--psn-navy) 0%, var(--psn-blue) 100%) !important;
}

.user-info,
.wizard-actions {
    background: #f8fbfd !important;
}

.info-row,
.stat-card,
.wizard-option,
.wizard-upload-row,
.address-lookup-input,
.address-lookup-results {
    border-color: var(--psn-border) !important;
}

.wizard-eyebrow,
.address-lookup-input i,
.address-lookup-option i,
.add-job-back,
.info-label {
    color: var(--psn-blue) !important;
}

.add-job-progress-track span {
    background: linear-gradient(90deg, var(--psn-blue), var(--psn-orange)) !important;
}

.wizard-option:hover,
.address-lookup-option:hover,
.address-lookup-option:focus {
    background: #eef8fd !important;
    border-color: rgba(15, 143, 206, 0.34) !important;
}

.wizard-upload {
    border-color: rgba(15, 143, 206, 0.34) !important;
    background: #eef8fd !important;
    color: var(--psn-blue-dark) !important;
}

.header {
    box-shadow: 0 14px 34px rgba(18, 32, 51, 0.18) !important;
}

.nav-button,
.view-option,
.filter-button,
.pagination-button {
    border-radius: 8px !important;
}

.nav-button {
    background: rgba(255, 255, 255, 0.14) !important;
    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    font-weight: 700 !important;
}

.nav-button:hover {
    background: rgba(255, 255, 255, 0.24) !important;
}

.badge-info,
.active-badge,
.status-badge.active {
    background: var(--psn-mint) !important;
    color: #0b6848 !important;
}

.view-option.active,
.view-option:hover,
.job-card:hover {
    border-color: rgba(15, 143, 206, 0.45) !important;
}

.rfi-history-card.open,
.rfi-thread-card.open-rfi {
    border-color: rgba(247, 148, 29, 0.48) !important;
    background: #fffaf2 !important;
}

.footer {
    background: var(--psn-navy) !important;
}
