/* Smooth scrolling for anchor links */
    html {
        scroll-behavior: smooth;
    }

    /* Offset anchor targets to account for sticky header */
    :target {
        scroll-margin-top: 120px;
    }

    /* Apply Inter font globally */
    :root {
        --safe-top: env(safe-area-inset-top, 0px);
        --landing-bg: #ffffff;
        --landing-surface: #ffffff;
        --landing-card-bg: #fcfcfc;
        --landing-contrast-bg: #f8f8f7;
        --landing-soft-bg: #f3ffe4;
        --landing-text: #111827;
        --landing-muted-text: #6b7280;
        --landing-chip-bg: rgba(37, 99, 235, 0.12);
        --landing-chip-text: #1d4ed8;
        --landing-pill-border: #5B6056;
        --landing-pill-active-bg: #5B6056;
        --landing-pill-active-text: #ffffff;
        --landing-switch-track: #f5f5f5;
        --landing-switch-thumb: #ffffff;
        --landing-switch-shadow: rgba(15, 23, 42, 0.15);
        --landing-switch-text: #5B6056;
        --landing-border: rgba(17, 24, 39, 0.08);
        --landing-panel-border: transparent;
        --landing-savings: #2563eb;
        --landing-green: #10b981;
        --landing-green-light: #34d399;
        --landing-card-shadow: 0 24px 50px rgba(17, 24, 39, 0.08);
        --landing-highlight-card: #111827;
        --landing-highlight-text: #ffffff;
    }

    .dark .landing-page {
        --landing-bg: #05060a;
        --landing-surface: #070b12;
        --landing-card-bg: #0f172a;
        --landing-contrast-bg: #05060a;
        --landing-soft-bg: #0c121f;
        --landing-text: #f8fafc;
        --landing-muted-text: #cbd5f5;
        --landing-chip-bg: rgba(147, 197, 253, 0.18);
        --landing-chip-text: #dbeafe;
        --landing-pill-border: rgba(226, 232, 240, 0.4);
        --landing-pill-active-bg: rgba(226, 232, 240, 0.18);
        --landing-pill-active-text: #f8fafc;
        --landing-switch-track: rgba(15, 23, 42, 0.7);
        --landing-switch-thumb: rgba(15, 23, 42, 0.95);
        --landing-switch-shadow: rgba(0, 0, 0, 0.45);
        --landing-switch-text: rgba(226, 232, 240, 0.85);
        --landing-border: rgba(148, 163, 184, 0.2);
        --landing-panel-border: rgba(148, 163, 184, 0.25);
        --landing-savings: #93c5fd;
        --landing-green: #34d399;
        --landing-green-light: #6ee7b7;
        --landing-card-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
        --landing-highlight-card: #111827;
        --landing-highlight-text: #f8fafc;
    }

    body, html {
        font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
        padding-top: var(--safe-top);
    }

    /* Ensure all text elements use Inter */
    * {
        font-family: inherit;
    }

    /* Inter font for landing page text */
    .landing-page {
        font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif !important;
    }

    .landing-page * {
        font-family: inherit !important;
    }

    .landing-panel {
        background: var(--landing-card-bg);
        border: 1px solid var(--landing-panel-border);
    }

    .landing-contrast-section {
        background: var(--landing-contrast-bg);
    }

    .landing-header {
        background-color: rgba(248, 248, 248, 0.45);
        border-bottom: 1px solid var(--landing-border);
    }

    .dark .landing-header {
        background-color: rgba(8, 11, 17, 0.8);
        border-bottom-color: var(--landing-panel-border);
    }

    /* Apply Inter to all headings */
    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
        font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif !important;
        font-weight: 600;
    }

    h1 {
        font-weight: 700;
    }


    .hero-section {
        position: relative;
        overflow: hidden;
        background: var(--landing-surface);
    }

    .hero-wrapper {
        position: relative;
        max-width: 1200px;
        margin: 0 auto;
        padding: 100px 24px 80px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

        .hero-content {
            position: relative;
            z-index: 10;
            max-width: 640px;
            text-align: center;
        display: grid;
        gap: 24px;
    }

    .hero-chip {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0.45rem 1.1rem;
        border-radius: 9999px;
        background: var(--landing-chip-bg);
        color: var(--landing-chip-text);
        font-size: 0.8rem;
        font-weight: 600;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        margin: 0 auto;
    }

    .hero-title {
        font-size: clamp(2.8rem, 4vw, 4.2rem);
        font-weight: 600;
        line-height: 1.15;
        color: var(--landing-text);
    }

    .hero-subtitle {
        font-size: 1.1rem;
        color: var(--landing-muted-text);
        line-height: 1.6;
        max-width: 560px;
        margin: 0 auto;
    }

    .hero-actions {
        display: flex;
        justify-content: center;
    }

    .hero-badges {
        margin-top: 2rem;
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: 0.75rem;
    }

    .hero-badges-section {
        margin-top: 0;
        flex-wrap: nowrap;
        gap: 1rem;
    }

    @media (max-width: 768px) {
        .hero-badges-section {
            flex-wrap: wrap;
        }
    }

    .hero-badge {
        display: inline-flex;
        align-items: center;
        gap: 0.45rem;
        padding: 0;
        border: none;
        font-size: 0.95rem;
        font-weight: 600;
        color: var(--landing-text);
        background: transparent;
    }

    .hero-badge-icon {
        display: inline-flex;
        width: 20px;
        height: 20px;
        align-items: center;
        justify-content: center;
        color: var(--landing-text);
    }

    .hero-art {
        position: absolute;
        z-index: 5;
    }

    .inline-svg {
        display: block;
        width: 100%;
    }

    .inline-svg svg {
        display: block;
        width: 100%;
        height: auto;
    }

    .inline-svg--logo {
        display: inline-flex;
        width: auto;
        height: 100%;
    }

    .inline-svg--logo svg {
        height: 100%;
        width: auto;
    }

    .hero-art svg {
        display: block;
        width: 100%;
        height: auto;
    }

    .hero-art--top-left {
        top: 18%;
        left: -60px;
        width: 260px;
        transform: rotate(-6deg);
    }

    .hero-art--bottom-left {
        top: calc(18% + 220px);
        left: -40px;
        width: 270px;
        transform: rotate(4deg);
    }

    .hero-art--top-right {
        top: 18%;
        right: -40px;
        width: 250px;
        transform: rotate(8deg);
    }

    .hero-art--bottom-right {
        top: calc(18% + 220px);
        right: -40px;
        width: 280px;
        transform: rotate(-5deg);
    }

    @media (max-width: 1024px) {
        .hero-wrapper {
            padding: 80px 20px 60px;
        }


        .hero-art--top-left,
        .hero-art--bottom-left,
        .hero-art--top-right,
        .hero-art--bottom-right {
            width: 200px;
        }

        .hero-art--top-left {
            left: -30px;
        }

        .hero-art--bottom-left {
            left: -20px;
        }

        .hero-art--top-right {
            right: -20px;
        }

        .hero-art--bottom-right {
            right: -30px;
        }
    }

    @media (max-width: 768px) {
        .hero-wrapper {
            padding: 60px 20px 40px;
        }

        .hero-content {
            gap: 20px;
        }

        .hero-chip {
            font-size: 0.7rem;
        }

        .hero-art {
            position: relative;
        }

        .hero-art--top-left,
        .hero-art--bottom-left,
        .hero-art--top-right,
        .hero-art--bottom-right {
            width: min(70%, 260px);
            left: auto;
            right: auto;
            top: auto;
            bottom: auto;
            transform: none;
            margin: 12px auto;
        }

        .hero-wrapper {
            display: grid;
            gap: 12px;
        }
    }

    /* Feature tabs section */
    .feature-tabs-section {
        padding: 4rem 0;
        background: var(--landing-soft-bg);
    }

    .feature-tabs-chip {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0.35rem 1rem;
        font-size: 0.75rem;
        font-weight: 600;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        border-radius: 9999px;
        background: rgba(17, 17, 17, 0.08);
        color: var(--landing-text);
    }

    .dark .feature-tabs-chip {
        background: rgba(255, 255, 255, 0.08);
    }

    .feature-tab-switcher {
        margin-top: 2.5rem;
        display: inline-flex;
        flex-wrap: nowrap;
        align-items: center;
        gap: 0;
        position: relative;
        background: transparent;
        border: 2px solid var(--landing-pill-border);
        border-radius: 50px;
        padding: 0.35rem;
    }

    @media (max-width: 768px) {
        .feature-tab-switcher {
            flex-wrap: wrap;
            gap: 0.5rem;
        }
    }

    .feature-tab-input {
        position: absolute;
        opacity: 0;
        pointer-events: none;
    }

    .feature-tab-label {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0.7rem 1.8rem;
        border: none;
        border-radius: 40px;
        font-size: 0.95rem;
        font-weight: 600;
        color: var(--landing-switch-text);
        background: transparent;
        cursor: pointer;
        transition: all 0.2s ease;
        box-shadow: none;
        white-space: nowrap;
    }

    #feature-tab-rents:checked ~ * .feature-tab-label[for="feature-tab-rents"],
    #feature-tab-docs:checked ~ * .feature-tab-label[for="feature-tab-docs"],
    #feature-tab-support:checked ~ * .feature-tab-label[for="feature-tab-support"],
    #feature-tab-storage:checked ~ * .feature-tab-label[for="feature-tab-storage"] {
        background: var(--landing-pill-active-bg);
        color: var(--landing-pill-active-text);
        box-shadow: none;
    }

    .feature-tab-input:focus-visible ~ * .feature-tab-label {
        outline: 2px solid var(--landing-pill-border);
        outline-offset: 4px;
    }

    .feature-tab-panels {
        width: 100%;
        margin-top: 2.5rem;
        position: relative;
    }

    .feature-tab-panel {
        display: none;
        gap: 20px;
        align-items: stretch;
    }

    .feature-tab-copy {
        max-width: 300px;
        background: transparent;
        border-radius: 0;
        padding: 0;
        box-shadow: none;
        display: flex;
        flex-direction: column;
        gap: 1.75rem;
    }

    .feature-tab-copy p {
        line-height: 1.55;
    }

    .feature-tab-cta {
        display: flex;
        justify-content: flex-start;
    }

    .feature-tab-visual {
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .feature-tabs-chip-wrapper {
        display: flex;
        justify-content: center;
    }

    .feature-visual-card {
        width: 100%;
        max-width: 600px;
        background: var(--landing-card-bg);
        border-radius: 24px;
        padding: 1.75rem;
        box-shadow: var(--landing-card-shadow);
        display: flex;
        flex-direction: column;
        gap: 1.25rem;
    }

    .feature-visual-header {
        display: flex;
        flex-direction: column;
        gap: 0.35rem;
    }

    .feature-visual-title {
        font-size: 0.85rem;
        font-weight: 600;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: var(--landing-text);
    }

    .feature-visual-subtitle {
        font-size: 0.9rem;
        color: var(--landing-muted-text);
    }

    .feature-visual-full {
        width: 100%;
        height: auto;
        border-radius: 20px;
        box-shadow: none;
        overflow: hidden;
    }

        .feature-visual-full svg {
            width: 100%;
            height: auto;
            display: block;
        }

    /* Pricing section */
    .pricing-toggle {
        margin-top: 2.5rem;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 1.25rem;
    }

    .pricing-toggle-switch {
        display: inline-flex;
        align-items: center;
        background: var(--landing-switch-track);
        padding: 0.35rem;
        border-radius: 9999px;
        position: relative;
    }

    .pricing-toggle-input {
        display: none;
    }

    .pricing-toggle-label {
        position: relative;
        z-index: 2;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0.45rem 1.35rem;
        border-radius: 9999px;
        font-weight: 600;
        font-size: 0.95rem;
        color: var(--landing-switch-text);
        cursor: pointer;
        transition: color 0.2s ease;
    }

    #pricing-billing-monthly:checked ~ .pricing-toggle-switch label[for="pricing-billing-monthly"],
    #pricing-billing-annual:checked ~ .pricing-toggle-switch label[for="pricing-billing-annual"] {
        color: var(--landing-text);
    }

    .pricing-toggle-thumb {
        position: absolute;
        top: 4px;
        bottom: 4px;
        width: calc(50% - 6px);
        background: var(--landing-switch-thumb);
        border-radius: 9999px;
        box-shadow: var(--landing-switch-shadow);
        transition: transform 0.25s ease;
        z-index: 1;
    }

    #pricing-billing-annual:checked ~ .pricing-toggle-switch .pricing-toggle-thumb {
        transform: translateX(100%);
    }

    .pricing-toggle-savings {
        font-size: 0.92rem;
        font-weight: 600;
        color: var(--landing-savings);
        text-align: center;
    }

    .pricing-cards {
        width: 100%;
        display: grid;
        gap: 1.5rem;
    }

    @media (min-width: 768px) {
        .pricing-cards {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }
    }

    .pricing-card {
        display: flex;
        flex-direction: column;
        gap: 1.5rem;
        padding: 2rem;
        border-radius: 24px;
        background: var(--landing-card-bg);
        box-shadow: var(--landing-card-shadow);
        height: 100%;
        color: var(--landing-text);
        transition: transform 0.2s ease;
    }

    .pricing-card:hover {
        transform: translateY(-4px);
    }

    .pricing-card.highlight {
        background: var(--landing-highlight-card);
        color: var(--landing-highlight-text);
        box-shadow: 0 32px 60px rgba(17, 24, 39, 0.25);
    }

    .pricing-card-header {
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
    }

    .pricing-price {
        display: none;
        align-items: baseline;
        gap: 0.75rem;
    }

    .pricing-price-value {
        font-size: 2.75rem;
        font-weight: 700;
        letter-spacing: -0.02em;
    }

    .pricing-price-caption {
        font-size: 0.95rem;
        color: var(--landing-muted-text);
        font-weight: 500;
    }

    .pricing-price-caption--light {
        color: rgba(255, 255, 255, 0.7);
    }

    .pricing-bullets {
        display: grid;
        gap: 0.75rem;
        font-size: 0.95rem;
        color: var(--landing-muted-text);
    }

    .pricing-bullets--light {
        color: rgba(255, 255, 255, 0.8);
    }

    .pricing-bullet {
        display: flex;
        align-items: flex-start;
        gap: 0.75rem;
    }

    .pricing-bullet-icon {
        width: 18px;
        height: 18px;
        color: var(--landing-green);
        margin-top: 0.15rem;
    }

    .pricing-bullet-icon--light {
        color: var(--landing-green-light);
    }

    .pricing-card.highlight .pricing-price-caption {
        color: rgba(255, 255, 255, 0.75);
    }

    .pricing-card.highlight .pricing-bullet-icon {
        color: var(--landing-green-light);
    }

    .pricing-card.highlight .pricing-bullets--light {
        color: rgba(255, 255, 255, 0.78);
    }

    .pricing-price.price--monthly {
        display: flex;
    }

    .pricing-price.price--annual {
        display: none;
    }

    #pricing-billing-monthly:checked ~ .pricing-cards .price--monthly {
        display: flex;
    }

    #pricing-billing-monthly:checked ~ .pricing-cards .price--annual {
        display: none;
    }

    #pricing-billing-annual:checked ~ .pricing-cards .price--monthly {
        display: none;
    }

    #pricing-billing-annual:checked ~ .pricing-cards .price--annual {
        display: flex;
    }

    @media (max-width: 640px) {
        .pricing-toggle {
            gap: 1rem;
        }

        .pricing-toggle-switch {
            width: 100%;
            max-width: 280px;
        }

        .pricing-cards {
            gap: 1rem;
        }
    }

    .feature-documents-grid {
        display: grid;
        gap: 0.9rem;
    }

    .document-card {
        display: flex;
        align-items: center;
        gap: 0.9rem;
        padding: 0.85rem 1rem;
        border-radius: 18px;
        background: var(--landing-card-bg);
        border: 1px solid var(--landing-border);
    }

    .document-icon {
        font-size: 1.4rem;
    }

    .document-title {
        font-weight: 600;
        color: var(--landing-text);
    }

    .document-status {
        font-size: 0.85rem;
        color: var(--landing-savings);
    }

    .feature-timeline {
        display: grid;
        gap: 1rem;
    }

    .timeline-step {
        display: flex;
        gap: 1rem;
        align-items: flex-start;
    }

    .timeline-marker {
        width: 12px;
        height: 12px;
        border-radius: 9999px;
        margin-top: 0.35rem;
        background: var(--landing-border);
        border: 2px solid var(--landing-border);
    }

    .timeline-step.done .timeline-marker {
        background: var(--landing-text);
        border-color: var(--landing-text);
    }

    .timeline-content {
        display: flex;
        flex-direction: column;
        gap: 0.2rem;
    }

    .timeline-title {
        font-weight: 600;
        color: var(--landing-text);
    }

    .timeline-label {
        font-size: 0.9rem;
        color: var(--landing-muted-text);
    }

    .feature-storage-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.75rem;
    }

    .storage-tile {
        padding: 0.9rem 1rem;
        border-radius: 16px;
        background: var(--landing-card-bg);
        display: flex;
        flex-direction: column;
        gap: 0.3rem;
        border: 1px solid var(--landing-border);
    }

    .storage-icon {
        font-size: 1.3rem;
    }

    .storage-title {
        font-weight: 600;
        color: var(--landing-text);
    }

    .storage-detail {
        font-size: 0.85rem;
        color: var(--landing-muted-text);
    }

    #feature-tab-rents:checked ~ .feature-tab-panels [data-tab="feature-tab-rents"],
    #feature-tab-docs:checked ~ .feature-tab-panels [data-tab="feature-tab-docs"],
    #feature-tab-support:checked ~ .feature-tab-panels [data-tab="feature-tab-support"],
    #feature-tab-storage:checked ~ .feature-tab-panels [data-tab="feature-tab-storage"] {
        display: flex;
    }

    @media (max-width: 1024px) {
        .feature-tab-panel {
            flex-direction: column;
            padding: 2rem;
        }

        .feature-tab-visual {
            min-height: 220px;
        }

        .feature-visual-card {
            max-width: none;
        }
    }

    /* Unified drawer animations */
    @keyframes expandDrawer {
        from {
            width: 64px;
        }
        to {
            width: 256px;
        }
    }
    
    @keyframes collapseDrawer {
        from {
            width: 256px;
        }
        to {
            width: 64px;
        }
    }
    
    @keyframes fadeIn {
        from {
            opacity: 0;
        }
        to {
            opacity: 1;
        }
    }
    
    @keyframes fadeOut {
        from {
            opacity: 1;
        }
        to {
            opacity: 0;
        }
    }
    
    /* Smooth transitions for unified drawer */
    .drawer-transition {
        transition: width 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }
    
    .drawer-content-transition {
        transition: opacity 0.2s ease-in-out;
    }
    
    /* Property navigation sidebar - static position with fade */
    .property-sidebar-fade {
        transition: opacity 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }
    
    @media (max-width: 768px) {
        .desktop-nav {
            display: none !important;
        }

        .mobile-menu-button {
            display: flex !important;
        }

        .mobile-menu {
            display: block !important;
        }
    }

    @media (min-width: 769px) {
        .mobile-menu-button {
            display: none !important;
        }

        .mobile-menu {
            display: none !important;
        }
    }

    /* Header transition styles for auto-hide on scroll */
    .header-transition {
        transition: transform 0.3s ease;
    }

    .header-hidden {
        transform: translateY(-100%);
    }

    .header-visible {
        transform: translateY(0);
    }

    /* Native date input styling */
    .date-input-native {
        color-scheme: light dark;
        position: relative;
    }

    .date-input-native::-webkit-calendar-picker-indicator {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        width: auto;
        height: auto;
        color: transparent;
        background: transparent;
        cursor: pointer;
        opacity: 0;
    }

    .date-input-native::-webkit-datetime-edit {
        padding: 0.25rem 0.5rem;
        font-size: 1.125rem;
        font-weight: 500;
        letter-spacing: 0.015em;
    }

    .date-input-native::-webkit-datetime-edit-fields-wrapper {
        padding: 0;
    }

    .date-input-native::-webkit-datetime-edit-text {
        opacity: 0.4;
        padding: 0 0.15em;
    }

    .date-input-native::-webkit-datetime-edit-day-field,
    .date-input-native::-webkit-datetime-edit-month-field,
    .date-input-native::-webkit-datetime-edit-year-field {
        padding: 0.125rem 0.25rem;
        border-radius: 0.375rem;
        font-weight: 600;
    }

    .date-input-native::-webkit-datetime-edit-day-field:focus,
    .date-input-native::-webkit-datetime-edit-month-field:focus,
    .date-input-native::-webkit-datetime-edit-year-field:focus {
        background: rgba(59, 130, 246, 0.1);
        color: rgb(37, 99, 235);
        outline: none;
    }

    .dark .date-input-native::-webkit-datetime-edit-day-field:focus,
    .dark .date-input-native::-webkit-datetime-edit-month-field:focus,
    .dark .date-input-native::-webkit-datetime-edit-year-field:focus {
        background: rgba(96, 165, 250, 0.15);
        color: rgb(147, 197, 253);
    }

    .date-input-native::-webkit-inner-spin-button {
        display: none;
    }

    .date-input-native::-webkit-clear-button {
        display: none;
    }

    /* Override elm-syntax-highlight backgrounds to use our own */
    .elmsh,
    .elmsh pre,
    .elmsh code {
        background: transparent !important;
    }

    /* Animated gradient background for auth pages */
    .auth-gradient-bg {
        position: fixed;
        inset: 0;
        z-index: 0;
        opacity: 0;
        transition: opacity 0.5s ease;
        pointer-events: none;
        background: linear-gradient(-45deg, #C3FA7F, #e0f8d0, #e3ffde, #d4f5c4, #C3FA7F);
        background-size: 400% 400%;
        animation: authGradientFlow 15s ease infinite;
    }

    .auth-gradient-bg::before {
        content: '';
        position: absolute;
        inset: 0;
        background:
            radial-gradient(ellipse 80% 50% at 20% 40%, rgba(195, 250, 127, 0.6) 0%, transparent 50%),
            radial-gradient(ellipse 60% 40% at 80% 60%, rgba(227, 255, 222, 0.5) 0%, transparent 50%),
            radial-gradient(ellipse 50% 30% at 40% 80%, rgba(224, 248, 208, 0.4) 0%, transparent 50%);
        animation: authGradientPulse 8s ease-in-out infinite;
    }

    @keyframes authGradientFlow {
        0% { background-position: 0% 50%; }
        50% { background-position: 100% 50%; }
        100% { background-position: 0% 50%; }
    }

    @keyframes authGradientPulse {
        0%, 100% { opacity: 1; transform: scale(1); }
        50% { opacity: 0.8; transform: scale(1.05); }
    }
