body {
    background: radial-gradient(120% 120% at 50% 0%, #172f49 0%, #0b1d2b 65%, #061524 100%);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    color: var(--bs-light);
}

main.container {
    flex: 1 0 auto;
}

.card.shadow-sm {
    box-shadow: 0 1.5rem 3rem rgba(2, 12, 24, 0.35) !important;
}

.hero-card {
    background: rgba(3, 20, 33, 0.88);
    border-radius: 1rem;
    box-shadow: 0 1.5rem 3rem rgba(2, 12, 24, 0.45);
    border: 1px solid rgba(56, 189, 248, 0.2);
    color: var(--bs-light);
    backdrop-filter: blur(4px);
}

.hero-card .btn-primary {
    box-shadow: 0 1.25rem 2.5rem rgba(13, 110, 253, 0.35);
}

.weather-icon {
    width: 120px;
}

.signature-card .card-header {
    border-bottom: none;
}

.signature-pad {
    background-color: rgba(248, 250, 252, 0.9);
    border-radius: 0.75rem;
    border: 1px solid rgba(148, 163, 184, 0.35);
    box-shadow: inset 0 1rem 2.5rem rgba(15, 23, 42, 0.12);
}

.signature-pad--body {
    position: relative;
    min-height: 240px;
    background: repeating-linear-gradient(0deg, rgba(148, 163, 184, 0.08), rgba(148, 163, 184, 0.08) 12px, transparent 12px, transparent 48px);
    border-radius: 0.5rem;
    overflow: hidden;
}

.signature-pad--body::after {
    content: '';
    position: absolute;
    inset: 0;
    border: 1px dashed rgba(148, 163, 184, 0.4);
    border-radius: 0.5rem;
    pointer-events: none;
}

.signature-pad--body canvas {
    width: 100%;
    height: 100%;
    display: block;
}

.signature-pad--actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
}

.signature-pad--actions .btn-toolbar {
    flex-wrap: wrap;
}

#video,
#canvas {
    width: 100%;
    border-radius: 0.75rem;
    border: 1px solid rgba(56, 189, 248, 0.25);
}

.mortgage-summary {
    background: rgba(255, 247, 230, 0.1);
    border-radius: 0.75rem;
    border: 1px solid rgba(255, 193, 7, 0.35);
}

.alert-secondary {
    background: rgba(56, 189, 248, 0.12);
    border: 1px solid rgba(56, 189, 248, 0.35);
    color: var(--bs-light);
}

.alert-secondary .btn-outline-danger {
    color: #f8d7da;
    border-color: rgba(248, 215, 218, 0.6);
}

.alert-secondary .btn-outline-danger:hover,
.alert-secondary .btn-outline-danger:focus {
    color: #fff;
    background-color: rgba(220, 53, 69, 0.85);
    border-color: rgba(220, 53, 69, 0.85);
}

.alert-secondary .btn-success {
    box-shadow: 0 1rem 2.5rem rgba(25, 135, 84, 0.35);
}

.pwa-actions {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

@media (min-width: 576px) {
    .pwa-actions {
        flex-direction: row;
        align-items: center;
    }
}