/* ============================================================
   TidyBox app theme
   Shared light-theme overrides for non-landing product pages.
   Scope every rule to body.tb-app-page so the public landing stays isolated.
   ============================================================ */

body.tb-app-page {
    background: var(--tb-bg);
    color: var(--tb-dark);
}

body.tb-app-page .landing-shell,
body.tb-app-page .auth-page,
body.tb-app-page .verify-page,
body.tb-app-page .payment-success {
    position: relative;
    z-index: 1;
}

/* Header and language switcher */
body.tb-app-page .landing-header {
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(255, 255, 255, 0.62);
    border-radius: 24px;
    box-shadow: 0 10px 30px rgba(35, 95, 103, 0.08);
    backdrop-filter: blur(14px);
    padding: 8px 12px;
}

body.tb-scan-page .landing-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 5px 10px;
    border-radius: 18px;
}

body.tb-scan-page .landing-brand--chat .landing-brand__logo {
    width: min(144px, 34vw);
}

body.tb-scan-page .landing-lang-switcher {
    flex: 0 0 auto;
    width: max-content;
    margin-left: auto;
}

body.tb-scan-page .landing-lang-switcher__toggle {
    min-width: 74px;
    height: 34px;
    padding: 6px 10px;
    gap: 6px;
    font-size: 0.78rem;
}

body.tb-scan-page .landing-lang-switcher__flag {
    width: 18px;
    height: 18px;
}

body.tb-scan-page .landing-lang-switcher__chevron {
    width: 8px;
    height: 8px;
    border-width: 1.5px;
}

body.tb-scan-page .landing-lang-switcher__menu {
    position: absolute;
    inset-inline-end: 0;
    top: calc(100% + 8px);
    width: max-content;
    min-width: 210px;
    max-height: min(320px, 64vh);
    overflow-y: auto;
    padding: 8px;
    border-radius: 16px;
    background: #fff;
    border-color: var(--landing-border);
}

body.tb-scan-page .landing-lang-switcher__item {
    color: var(--tb-dark);
}

body.tb-scan-page .landing-lang-switcher__item:hover,
body.tb-scan-page .landing-lang-switcher__item--active {
    color: var(--tb-dark);
    background: var(--tb-bg-soft);
}

body.tb-scan-page .landing-lang-switcher__code {
    color: var(--tb-primary);
    background: rgba(35, 95, 103, 0.08);
}

body.tb-scan-page .landing-lang-switcher__name {
    color: var(--tb-dark);
}

body.tb-app-page .landing-header__panel {
    background: rgba(255, 255, 255, 0.97);
    border-color: var(--landing-border);
    backdrop-filter: none;
}

body.tb-app-page .landing-menu-toggle,
body.tb-app-page .landing-lang-switcher__toggle {
    background: #fff;
    color: var(--tb-dark);
    border-color: var(--landing-border);
    box-shadow: 0 8px 24px rgba(35, 95, 103, 0.08);
}

body.tb-app-page .landing-menu-toggle__line {
    background: var(--tb-dark);
}

body.tb-app-page .landing-lang-switcher__toggle:hover,
body.tb-app-page .landing-lang-switcher.is-open .landing-lang-switcher__toggle {
    background: var(--tb-bg-soft);
    border-color: var(--landing-border-strong);
}

body.tb-app-page .landing-lang-switcher__menu {
    background: #fff;
    box-shadow: 0 8px 32px rgba(35, 95, 103, 0.14);
}

body.tb-app-page .landing-lang-switcher__item:hover,
body.tb-app-page .landing-lang-switcher__item--active,
body.tb-app-page .landing-lang-switcher__code {
    background: var(--tb-bg-soft);
}

body.tb-app-page .settings-nav a,
body.tb-app-page .landing-nav a,
body.tb-app-page .dashboard-nav__link {
    color: var(--landing-text-soft);
}

body.tb-app-page .settings-nav a:hover,
body.tb-app-page .landing-nav a:hover,
body.tb-app-page .dashboard-nav__link:hover,
body.tb-app-page .dashboard-nav__link.is-active {
    color: var(--tb-primary);
}

/* Shared cards */
body.tb-app-page .landing-card,
body.tb-app-page .auth-card,
body.tb-app-page .verify-card,
body.tb-app-page .profile-card,
body.tb-app-page .payment-history__card,
body.tb-app-page .payment-success__card,
body.tb-app-page .ls-card,
body.tb-app-page .dashboard-profile-card,
body.tb-app-page .dashboard-cta-card,
body.tb-app-page .dashboard-empty-state,
body.tb-app-page .dashboard-code-card,
body.tb-app-page .dashboard-modal__dialog,
body.tb-app-page .unactivated-placeholder,
body.tb-app-page .claim-screen,
body.tb-app-page .setup-wizard {
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(255, 255, 255, 0.68);
    border-radius: 24px;
    box-shadow: 0 18px 48px rgba(35, 95, 103, 0.12);
    color: var(--tb-dark);
    backdrop-filter: blur(12px);
}

body.tb-app-page .landing-card:hover,
body.tb-app-page .profile-card:hover,
body.tb-app-page .payment-history__card:hover,
body.tb-app-page .payment-success__card:hover {
    border-color: rgba(77, 202, 161, 0.52);
    box-shadow: 0 22px 54px rgba(35, 95, 103, 0.17);
}

/* Auth and verification pages */
body.tb-app-page .auth-title,
body.tb-app-page .verify-title,
body.tb-app-page .payment-success__title,
body.tb-app-page .payment-history__header h1,
body.tb-app-page .dashboard-main > h1 {
    color: var(--tb-dark) !important;
}

body.tb-app-page .auth-desc,
body.tb-app-page .auth-link,
body.tb-app-page .auth-hint,
body.tb-app-page .verify-message,
body.tb-app-page .payment-success__message,
body.tb-app-page .payment-success__limit,
body.tb-app-page .payment-history__empty {
    color: var(--landing-text-soft);
}

body.tb-app-page .auth-field label {
    color: var(--landing-text-soft);
    font-weight: 700;
}

body.tb-app-page .auth-field input,
body.tb-app-page .dashboard-form-input,
body.tb-app-page .dashboard-tag-input,
body.tb-app-page .bulk-tag-popup__input {
    background: #fff;
    border-color: var(--landing-border);
    color: var(--tb-dark);
}

body.tb-app-page .auth-field input::placeholder,
body.tb-app-page .dashboard-form-input::placeholder,
body.tb-app-page .dashboard-tag-input::placeholder,
body.tb-app-page .bulk-tag-popup__input::placeholder,
body.tb-app-page .typing-area input.input-field::placeholder {
    color: #8095a0;
}

body.tb-app-page .auth-field input:focus,
body.tb-app-page .dashboard-form-input:focus,
body.tb-app-page .dashboard-tag-input:focus,
body.tb-app-page .typing-area input.input-field:focus {
    border-color: var(--tb-primary);
    box-shadow: 0 0 0 3px rgba(77, 202, 161, 0.16);
}

body.tb-app-page .auth-submit,
body.tb-app-page .auth-btn,
body.tb-app-page .verify-btn,
body.tb-app-page .payment-success__btn,
body.tb-app-page .claim-btn--primary,
body.tb-app-page .claim-btn--small {
    background: linear-gradient(135deg, var(--tb-primary), var(--tb-secondary));
    color: #fff;
    box-shadow: 0 8px 24px rgba(35, 95, 103, 0.22);
}

body.tb-app-page .auth-submit:hover,
body.tb-app-page .auth-btn:hover,
body.tb-app-page .verify-btn:hover,
body.tb-app-page .payment-success__btn:hover,
body.tb-app-page .claim-btn--primary:hover,
body.tb-app-page .claim-btn--small:hover {
    opacity: 1;
    box-shadow: 0 12px 30px rgba(35, 95, 103, 0.28);
}

body.tb-app-page .auth-google,
body.tb-app-page .payment-success__btn--ghost,
body.tb-app-page .claim-btn--secondary,
body.tb-app-page .claim-btn--ghost,
body.tb-app-page .link-signup--secondary {
    background: #fff;
    border: 1px solid var(--landing-border);
    color: var(--tb-dark);
}

body.tb-app-page .auth-google:hover,
body.tb-app-page .payment-success__btn--ghost:hover,
body.tb-app-page .claim-btn--secondary:hover,
body.tb-app-page .claim-btn--ghost:hover,
body.tb-app-page .link-signup--secondary:hover {
    background: var(--tb-bg-soft);
    border-color: var(--tb-primary);
}

body.tb-app-page .auth-divider {
    color: var(--landing-text-soft);
}

body.tb-app-page .auth-divider::before,
body.tb-app-page .auth-divider::after {
    background: var(--landing-border);
}

body.tb-app-page .auth-link a,
body.tb-app-page .auth-forgot a,
body.tb-app-page .setup-step__register-cta a {
    color: var(--tb-primary);
}

body.tb-app-page .auth-info,
body.tb-app-page .verify-success .verify-icon,
body.tb-app-page .auth-icon--success {
    color: var(--tb-primary);
}

body.tb-app-page .auth-info {
    background: rgba(77, 202, 161, 0.12);
    border-color: rgba(77, 202, 161, 0.28);
}

/* Chat and scan surfaces */
body.tb-app-page .chat-panel {
    background: rgba(255, 255, 255, 0.94);
}

body.tb-app-page .chat-panel__toolbar,
body.tb-app-page .chat-header-bar,
body.tb-app-page .typing-area,
body.tb-app-page .mc-sidebar,
body.tb-app-page .chat-intro {
    background: var(--tb-bg-soft);
    border-color: var(--landing-border);
    color: var(--tb-dark);
    backdrop-filter: none;
}

body.tb-app-page .chat-panel__toolbar-main strong,
body.tb-app-page .chat-header-bar__chat-title,
body.tb-app-page .mc-conv__name,
body.tb-app-page .tb-scan-items__title,
body.tb-app-page .tb-scan-empty__title,
body.tb-app-page .tb-scan-private__title,
body.tb-app-page .claim-screen__title,
body.tb-app-page .setup-step__title,
body.tb-app-page .unactivated-placeholder h2 {
    color: var(--tb-dark);
}

body.tb-app-page .chat-panel__toolbar-main span,
body.tb-app-page .chat-intro,
body.tb-app-page .chat-intro p,
body.tb-app-page .mc-conv__preview,
body.tb-app-page .mc-conv__date,
body.tb-app-page .tb-scan-empty__desc,
body.tb-app-page .tb-scan-private__desc,
body.tb-app-page .claim-screen__desc,
body.tb-app-page .claim-screen__account-hint,
body.tb-app-page .setup-step__desc,
body.tb-app-page .unactivated-placeholder p {
    color: var(--landing-text-soft);
}

body.tb-app-page .chat-panel__toolbar-link,
body.tb-app-page .chat-panel__toolbar-button,
body.tb-app-page .chat-header-bar__type,
body.tb-app-page .tb-scan-action,
body.tb-app-page .tb-scan-btn--outline,
body.tb-app-page .tb-scan-btn--ghost {
    background: #fff;
    border-color: var(--landing-border);
    color: var(--tb-primary);
}

body.tb-app-page .chat-panel__toolbar-link:hover,
body.tb-app-page .chat-panel__toolbar-button:hover,
body.tb-app-page .tb-scan-action:hover,
body.tb-app-page .tb-scan-btn--outline:hover,
body.tb-app-page .tb-scan-btn--ghost:hover {
    background: var(--tb-bg-soft);
    border-color: var(--tb-primary);
    box-shadow: none;
}

body.tb-app-page .chat-box,
body.tb-app-page .mc-chat-pane {
    background: #fff;
    color: var(--tb-dark);
}

body.tb-app-page .typing-area input.input-field {
    background: #fff;
    border-color: var(--landing-border);
    color: var(--tb-dark);
}

body.tb-app-page .typing-area button,
body.tb-app-page .link-signup,
body.tb-app-page .tb-scan-btn--primary {
    background: var(--tb-primary);
    color: #fff;
}

body.tb-app-page .smail,
body.tb-app-page .chat-loader__text {
    color: var(--landing-text-soft);
}

/* Dashboard search input — ships with dark-theme colours
   (background rgba(255,255,255,0.04), color #e8edf2) which are
   invisible on the light TidyBox surface. Repaint for both light-
   themed body classes: tb-app-page (scan / app shells) and
   dashboard-page (home / batches / etc.). The previous version was
   scoped only to .tb-app-page, leaving the home dashboard's search
   box invisible against the cream background. */
body.tb-app-page .dashboard-search__input,
body.dashboard-page .dashboard-search__input {
    background: #fff;
    border-color: var(--landing-border);
    color: var(--tb-dark);
}
body.tb-app-page .dashboard-search__input::placeholder,
body.dashboard-page .dashboard-search__input::placeholder {
    color: var(--landing-text-soft);
}
body.tb-app-page .dashboard-search__icon,
body.dashboard-page .dashboard-search__icon {
    color: var(--landing-text-soft);
}
body.tb-app-page .dashboard-search__clear,
body.dashboard-page .dashboard-search__clear {
    color: var(--landing-text-soft);
}
body.tb-app-page .dashboard-search__clear:hover,
body.dashboard-page .dashboard-search__clear:hover {
    color: var(--tb-dark);
}
body.tb-app-page .dashboard-search__input:focus,
body.dashboard-page .dashboard-search__input:focus {
    border-color: var(--tb-primary);
    box-shadow: 0 0 0 3px rgba(35, 95, 103, 0.14);
}

/* Chat message bubbles — chat.css ships dark-theme colours (#dffcff text
   on translucent panels), invisible on the light TidyBox surface. Repaint
   both directions for app-theme pages. */
body.tb-app-page .incoming .details p {
    background: var(--tb-bg-soft);
    border-color: var(--landing-border);
    color: var(--tb-dark);
}
body.tb-app-page .outgoing .details p {
    background: var(--tb-primary);
    border-color: var(--tb-primary);
    color: #fff;
}
body.tb-app-page .chat .details a {
    color: inherit;
    text-decoration: underline;
}

body.tb-app-page .welcome-attach,
body.tb-app-page .tb-scan-items,
body.tb-app-page .tb-scan-no-items,
body.tb-app-page .tb-scan-gallery__track,
body.tb-app-page .setup-type-card,
body.tb-app-page .setup-field__input,
body.tb-app-page .setup-field__textarea,
body.tb-app-page .claim-screen__url-input {
    background: var(--tb-bg-soft);
    border-color: var(--landing-border);
    color: var(--tb-dark);
}

body.tb-app-page .welcome-attach__label,
body.tb-app-page .tb-scan-item__name,
body.tb-app-page .setup-type-card__name {
    color: var(--tb-dark);
}

body.tb-app-page .tb-scan-item {
    background: #fff;
    border-color: rgba(35, 95, 103, 0.14);
}

body.tb-app-page .tb-scan-item__cat {
    background: rgba(77, 202, 161, 0.24);
    border: 1px solid rgba(35, 95, 103, 0.14);
    color: var(--tb-primary);
}

body.tb-app-page .welcome-attach__hint,
body.tb-app-page .welcome-attach__count,
body.tb-app-page .setup-type-card__desc,
body.tb-app-page .claim-screen__checkbox {
    color: var(--landing-text-soft);
}

body.tb-app-page .setup-type-card--active {
    background: #fff;
    border-color: var(--tb-primary);
    box-shadow: 0 12px 28px rgba(35, 95, 103, 0.12);
}

/* Dashboard, profile, admin, stats and bulk pages */
body.tb-app-page .db-greeting,
body.tb-app-page .dashboard-card-heading h2,
body.tb-app-page .dashboard-section-heading h2,
body.tb-app-page .profile-label,
body.tb-app-page .dashboard-editable__text,
body.tb-app-page .stat-card__value,
body.tb-app-page .admin-card h1,
body.tb-app-page .admin-card h2,
body.tb-app-page .scan-details-title {
    color: var(--tb-dark);
}

body.tb-app-page .db-mini-stat,
body.tb-app-page .dashboard-profile-item,
body.tb-app-page .dashboard-filter,
body.tb-app-page .dashboard-type-badge,
body.tb-app-page .dashboard-code-card__link,
body.tb-app-page .dashboard-code-card__message,
body.tb-app-page .card-metrics,
body.tb-app-page .metric,
body.tb-app-page .dashboard-tag,
body.tb-app-page .summary-item,
body.tb-app-page .inbox-summary.is-empty,
body.tb-app-page .bulk-panel,
body.tb-app-page .stat-card,
body.tb-app-page .scan-detail-card {
    background: #fff;
    border: 1px solid var(--landing-border);
    color: var(--tb-dark);
}

body.tb-app-page .dashboard-card-heading p,
body.tb-app-page .dashboard-section-heading p,
body.tb-app-page .profile-hint,
body.tb-app-page .metric-label,
body.tb-app-page .summary-empty,
body.tb-app-page .summary-text,
body.tb-app-page .payment-table th,
body.tb-app-page .payment-table td,
body.tb-app-page .scan-details-muted {
    color: var(--landing-text-soft);
}

/* Payments */
body.tb-app-page .payment-table th,
body.tb-app-page .payment-table td {
    border-color: var(--landing-border);
}

body.tb-app-page .dashboard-history-link {
    background: #fff;
    border-color: var(--landing-border);
    color: var(--landing-text-soft);
}

body.tb-app-page .dashboard-history-link:hover {
    border-color: var(--tb-primary);
    color: var(--tb-primary);
}

body.tb-app-page .payment-success__icon {
    background: rgba(77, 202, 161, 0.14);
    color: var(--tb-primary);
}

/* Settings-page controls reused by admin/settings screens */
body.tb-app-page .ls-field__label,
body.tb-app-page .ls-field__hint,
body.tb-app-page .ls-muted,
body.tb-app-page .ls-meta,
body.tb-app-page .ls-tag {
    color: var(--landing-text-soft);
}

body.tb-app-page .ls-name-display,
body.tb-app-page .ls-name-input,
body.tb-app-page .ls-section__title {
    color: var(--tb-dark);
}

body.tb-app-page .ls-btn-sm,
body.tb-app-page .ls-btn-outline {
    background: #fff;
    border-color: var(--landing-border);
    color: var(--tb-dark);
}

body.tb-app-page .ls-btn-sm:hover,
body.tb-app-page .ls-btn-outline:hover {
    border-color: var(--tb-primary);
    color: var(--tb-primary);
}

@media (max-width: 759px) {
    body.tb-app-page .landing-lang-switcher__menu {
        background: #fff;
    }

    body.tb-scan-page .landing-header {
        padding: 4px 8px;
        border-radius: 16px;
    }

    body.tb-scan-page .landing-brand--chat .landing-brand__logo {
        width: min(124px, 38vw);
    }

    body.tb-scan-page .landing-lang-switcher {
        width: max-content;
    }

    body.tb-scan-page .landing-lang-switcher__toggle {
        min-width: 68px;
        height: 32px;
        padding: 5px 9px;
    }

    body.tb-scan-page .landing-lang-switcher__menu {
        position: absolute;
        inset-inline-end: 0;
        top: calc(100% + 8px);
        width: max-content;
        min-width: 200px;
        max-height: min(300px, 62vh);
    }
}
