@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700;800&display=swap');

/* Shared stats card look across Filament + custom admin grids */
:root {
    --titi-stats-font: 'Manrope', ui-sans-serif, system-ui, sans-serif;
}

.fi-wi-stats-overview-stats {
    gap: 0.65rem !important;
}

.fi-wi-stats-overview-stat {
    font-family: var(--titi-stats-font);
    padding: 0.7rem 0.85rem !important;
    border-radius: 0.75rem !important;
}

.fi-wi-stats-overview-stat-content {
    gap: 0.2rem !important;
}

.fi-wi-stats-overview-stat-label-ctn {
    gap: 0.4rem !important;
    align-items: center;
}

.fi-wi-stats-overview-stat-label {
    font-family: var(--titi-stats-font);
    font-size: 0.72rem !important;
    font-weight: 650 !important;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    line-height: 1.2 !important;
}

.fi-wi-stats-overview-stat-value {
    font-family: var(--titi-stats-font);
    font-size: 1.35rem !important;
    font-weight: 800 !important;
    letter-spacing: -0.02em;
    line-height: 1.15 !important;
    font-variant-numeric: tabular-nums;
    margin-top: 0.15rem !important;
}

.fi-wi-stats-overview-stat-description {
    font-family: var(--titi-stats-font);
    font-size: 0.75rem !important;
    font-weight: 600 !important;
    margin-top: 0.2rem !important;
    line-height: 1.25 !important;
}

.fi-wi-stats-overview-stat-label-ctn .fi-icon {
    width: 1.05rem;
    height: 1.05rem;
    color: rgb(100, 116, 139);
}

.dark .fi-wi-stats-overview-stat-label-ctn .fi-icon {
    color: rgb(148, 163, 184);
}

/* Compact, full-width list tables for TiTi Filament panels */
.fi-ta-text:not(.fi-inline),
.fi-ta-icon:not(.fi-inline),
.fi-ta-image:not(.fi-inline),
.fi-ta-checkbox:not(.fi-inline),
.fi-ta-toggle:not(.fi-inline),
.fi-ta-select:not(.fi-inline),
.fi-ta-color:not(.fi-inline),
.fi-ta-text-input:not(.fi-inline) {
    padding-top: 0.8rem !important;
    padding-bottom: 0.8rem !important;
}

.fi-ta-header-cell {
    padding-top: 0.8rem !important;
    padding-bottom: 0.8rem !important;
}

.fi-ta-cell:has(.fi-ta-actions),
.fi-ta-cell:has(.fi-ta-record-checkbox),
.fi-ta-selection-cell,
.fi-ta-cell:has(.fi-ta-reorder-handle) {
    padding-top: 0.8rem !important;
    padding-bottom: 0.8rem !important;
}

.fi-ta-table .fi-ta-row .fi-ta-text-item {
    line-height: 1.25;
}

.fi-page-content,
.fi-main > section {
    max-width: 100% !important;
}

/* Support inbox chat UI */
.titi-support-shell {
    display: grid;
    grid-template-columns: minmax(240px, 320px) 1fr;
    gap: 0;
    height: min(72vh, calc(100dvh - 11rem));
    min-height: 420px;
    max-height: calc(100dvh - 11rem);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 0.9rem;
    overflow: hidden;
    background: #fff;
}

.dark .titi-support-shell {
    border-color: rgba(255, 255, 255, 0.1);
    background: rgb(17, 24, 39);
}

.titi-support-list {
    border-right: 1px solid rgba(15, 23, 42, 0.08);
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
    overflow: hidden;
    background: #fafafa;
}

.dark .titi-support-list {
    border-right-color: rgba(255, 255, 255, 0.1);
    background: rgb(24, 31, 46);
}

.titi-support-list-head {
    padding: 0.75rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    flex-shrink: 0;
}

.dark .titi-support-list-head {
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

.titi-support-search {
    width: 100%;
    border-radius: 0.6rem;
    border: 1px solid rgba(15, 23, 42, 0.12);
    padding: 0.55rem 0.75rem;
    font-size: 0.875rem;
    background: #fff;
}

.dark .titi-support-search {
    background: rgb(17, 24, 39);
    border-color: rgba(255, 255, 255, 0.12);
    color: #fff;
}

.titi-support-threads {
    overflow-y: auto;
    flex: 1 1 auto;
    min-height: 0;
    overscroll-behavior: contain;
}

.titi-support-thread {
    width: 100%;
    text-align: left;
    padding: 0.85rem 0.9rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.06);
    background: transparent;
    transition: background 0.15s ease;
}

.titi-support-thread:hover,
.titi-support-thread.is-active {
    background: rgba(243, 161, 33, 0.12);
}

.titi-support-thread.is-closed {
    opacity: 0.72;
}

.titi-support-thread-top {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.25rem;
}

.titi-support-thread-name {
    font-weight: 600;
    font-size: 0.9rem;
}

.titi-support-thread-time {
    font-size: 0.72rem;
    color: #6b7280;
    white-space: nowrap;
}

.titi-support-thread-preview {
    font-size: 0.8rem;
    color: #6b7280;
    margin-bottom: 0.35rem;
}

.titi-support-thread-meta {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.titi-support-pill {
    font-size: 0.68rem;
    font-weight: 600;
    border-radius: 999px;
    padding: 0.15rem 0.5rem;
}

.titi-support-pill.open {
    background: rgba(16, 185, 129, 0.15);
    color: #047857;
}

.titi-support-pill.closed {
    background: rgba(107, 114, 128, 0.18);
    color: #4b5563;
}

.titi-support-unread {
    margin-left: auto;
    min-width: 1.25rem;
    height: 1.25rem;
    border-radius: 999px;
    background: #ef4444;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 0.35rem;
}

.titi-support-chat {
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
    overflow: hidden;
}

.titi-support-chat-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 0.9rem 1rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    flex-shrink: 0;
}

.dark .titi-support-chat-head {
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

.titi-support-chat-title {
    font-weight: 700;
    font-size: 1rem;
}

.titi-support-chat-sub {
    font-size: 0.78rem;
    color: #6b7280;
}

.titi-support-chat-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.titi-support-messages {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.dark .titi-support-messages {
    background: linear-gradient(180deg, rgb(17, 24, 39) 0%, rgb(24, 31, 46) 100%);
}

.titi-support-bubble-row {
    display: flex;
}

.titi-support-bubble-row.is-mine {
    justify-content: flex-end;
}

.titi-support-bubble-row.is-theirs {
    justify-content: flex-start;
}

.titi-support-bubble {
    max-width: min(75%, 36rem);
    border-radius: 1rem;
    padding: 0.65rem 0.85rem;
    font-size: 0.9rem;
}

.titi-support-bubble-row.is-mine .titi-support-bubble {
    background: #f3a121;
    color: #1f2937;
    border-bottom-right-radius: 0.3rem;
}

.titi-support-bubble-row.is-theirs .titi-support-bubble {
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-bottom-left-radius: 0.3rem;
}

.dark .titi-support-bubble-row.is-theirs .titi-support-bubble {
    background: rgb(31, 41, 55);
    border-color: rgba(255, 255, 255, 0.1);
}

.titi-support-bubble-meta {
    font-size: 0.7rem;
    opacity: 0.75;
    margin-bottom: 0.2rem;
}

.titi-support-bubble-body {
    white-space: pre-wrap;
    line-height: 1.4;
}

.titi-support-system {
    display: flex;
    justify-content: center;
    margin: 0.35rem 0;
}

.titi-support-system span {
    font-size: 0.78rem;
    color: #6b7280;
    background: rgba(107, 114, 128, 0.12);
    border-radius: 999px;
    padding: 0.35rem 0.8rem;
    text-align: center;
}

.titi-support-composer {
    display: flex;
    gap: 0.75rem;
    align-items: flex-end;
    padding: 0.85rem 1rem;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
    flex-shrink: 0;
}

.dark .titi-support-composer {
    border-top-color: rgba(255, 255, 255, 0.1);
}

.titi-support-input {
    flex: 1;
    border-radius: 0.75rem;
    border: 1px solid rgba(15, 23, 42, 0.12);
    padding: 0.65rem 0.8rem;
    font-size: 0.9rem;
    resize: none;
    background: #fff;
}

.dark .titi-support-input {
    background: rgb(17, 24, 39);
    border-color: rgba(255, 255, 255, 0.12);
    color: #fff;
}

.titi-support-closed-banner,
.titi-support-placeholder,
.titi-support-empty {
    padding: 1rem;
    text-align: center;
    color: #6b7280;
    font-size: 0.9rem;
}

.titi-support-closed-banner {
    border-top: 1px solid rgba(15, 23, 42, 0.08);
    background: rgba(107, 114, 128, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    flex-shrink: 0;
}

@media (max-width: 900px) {
    .titi-support-shell {
        grid-template-columns: 1fr;
        height: auto;
        max-height: none;
        min-height: 0;
    }

    .titi-support-list {
        max-height: 36vh;
        height: 36vh;
        border-right: 0;
        border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    }

    .titi-support-chat {
        height: min(58vh, calc(100dvh - 14rem));
        min-height: 320px;
    }
}

/* Metatoz network tree */
.titi-metatoz-network {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.titi-metatoz-tree {
    overflow-x: auto;
    padding: 0.25rem 0;
}

.titi-metatoz-node {
    margin: 0.35rem 0;
}

.titi-metatoz-pill {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.55rem;
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 0.65rem;
    padding: 0.45rem 0.75rem;
    font-size: 0.875rem;
    background: #fff;
    color: #0f172a;
}

.dark .titi-metatoz-pill {
    border-color: rgba(255, 255, 255, 0.12);
    background: rgb(17, 24, 39);
    color: #e5e7eb;
}

.titi-metatoz-pill span {
    color: #64748b;
}

.dark .titi-metatoz-pill span {
    color: #94a3b8;
}

.titi-metatoz-status {
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.72rem;
}

.titi-metatoz-children {
    margin: 0.4rem 0 0.2rem 1.1rem;
    padding-left: 0.9rem;
    border-left: 1px dashed rgba(15, 23, 42, 0.18);
    list-style: none;
}

.dark .titi-metatoz-children {
    border-left-color: rgba(255, 255, 255, 0.18);
}

.titi-metatoz-empty {
    margin: 0;
    font-size: 0.9rem;
    color: #6b7280;
}

/* Share and earn card */
.titi-share-card {
    height: 100%;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 0.9rem;
    background: #fff;
    padding: 1rem 1.1rem 1.1rem;
    box-sizing: border-box;
}

.dark .titi-share-card {
    border-color: rgba(255, 255, 255, 0.1);
    background: rgb(17, 24, 39);
}

.titi-share-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.9rem;
}

.titi-share-title {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 650;
    color: #0f172a;
}

.dark .titi-share-title {
    color: #f8fafc;
}

.titi-share-desc {
    margin: 0.3rem 0 0;
    font-size: 0.8rem;
    line-height: 1.35;
    color: #64748b;
}

.titi-share-link-btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    border-radius: 0.55rem;
    padding: 0.35rem 0.65rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-decoration: none;
    color: #422006;
    background: #f3a121;
}

.titi-share-link-btn:hover {
    filter: brightness(0.96);
}

.titi-share-body {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.9rem 1rem;
    align-items: start;
}

.titi-share-card.is-compact .titi-share-body {
    grid-template-columns: 1fr;
    justify-items: stretch;
}

.titi-share-qr-wrap {
    text-align: center;
}

.titi-share-card.is-compact .titi-share-qr-wrap {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    text-align: left;
}

.titi-share-qr {
    width: 7.5rem;
    height: 7.5rem;
    max-width: 7.5rem;
    max-height: 7.5rem;
    object-fit: contain;
    display: block;
    border-radius: 0.55rem;
    border: 1px solid rgba(15, 23, 42, 0.1);
    background: #fff;
    padding: 0.35rem;
    box-sizing: border-box;
}

.titi-share-card.is-compact .titi-share-qr {
    width: 5.75rem;
    height: 5.75rem;
    max-width: 5.75rem;
    max-height: 5.75rem;
}

.titi-share-code {
    margin: 0.45rem 0 0;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: #b45309;
}

.titi-share-card.is-compact .titi-share-code {
    margin: 0;
}

.titi-share-label {
    display: block;
    margin-bottom: 0.3rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.titi-share-input-wrap {
    position: relative;
}

.titi-share-input {
    width: 100%;
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 0.55rem;
    background: #f8fafc;
    color: #0f172a;
    font-size: 0.8rem;
    padding: 0.55rem 4.2rem 0.55rem 0.7rem;
    box-sizing: border-box;
    cursor: pointer;
}

.dark .titi-share-input {
    border-color: rgba(255, 255, 255, 0.12);
    background: rgb(24, 31, 46);
    color: #e2e8f0;
}

.titi-share-input:focus {
    outline: 2px solid rgba(243, 161, 33, 0.45);
    outline-offset: 1px;
}

.titi-share-copied {
    position: absolute;
    top: 50%;
    right: 0.55rem;
    transform: translateY(-50%);
    font-size: 0.72rem;
    font-weight: 700;
    color: #15803d;
    background: rgba(22, 163, 74, 0.12);
    border-radius: 999px;
    padding: 0.18rem 0.5rem;
}

.titi-share-socials {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-top: 0.65rem;
}

.titi-share-social {
    width: 2rem;
    height: 2rem;
    min-width: 2rem;
    min-height: 2rem;
    max-width: 2rem;
    max-height: 2rem;
    flex: 0 0 2rem;
    overflow: hidden;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    border: 1px solid transparent;
    box-sizing: border-box;
}

.titi-share-social svg {
    width: 1rem !important;
    height: 1rem !important;
    max-width: 1rem !important;
    max-height: 1rem !important;
    display: block;
    flex-shrink: 0;
}

.titi-share-social.is-whatsapp {
    background: #25d366;
    color: #fff;
}

.titi-share-social.is-facebook {
    background: #1877f2;
    color: #fff;
}

.titi-share-social.is-telegram {
    background: #229ed9;
    color: #fff;
}

.titi-share-social:hover {
    filter: brightness(0.95);
}

[x-cloak] {
    display: none !important;
}

/* Stacked relation manager cards on shop/merchant view */
.titi-relation-stack {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.titi-relation-stack > * {
    min-width: 0;
}

/* Sales report page: layout also inlined in sales-report-body for Filament flex conflicts */
.titi-sales-report .fi-section-content {
    display: block !important;
    align-items: stretch !important;
}

.titi-sales-table {
    display: table !important;
}

.titi-sales-table thead {
    display: table-header-group !important;
}

.titi-sales-table tbody {
    display: table-row-group !important;
}

.titi-sales-table tr {
    display: table-row !important;
}

.titi-sales-table th,
.titi-sales-table td {
    display: table-cell !important;
}

/* Dashboard responsive layout */
.fi-page-dashboard .fi-wi-stats-overview,
.fi-page-dashboard .fi-wi-chart,
.fi-page-dashboard .fi-wi-table {
    min-width: 0;
}

.fi-page-dashboard .fi-sc-form {
    margin-bottom: 0.75rem;
}

@media (max-width: 767px) {
    .fi-page-dashboard .fi-wi-stats-overview-stats {
        grid-template-columns: 1fr !important;
        gap: 0.65rem;
    }

    .fi-page-dashboard .fi-wi-chart canvas {
        max-width: 100%;
    }

    .fi-page-dashboard .fi-ta-ctn,
    .fi-page-dashboard .fi-ta {
        overflow-x: auto;
    }
}

/* Merchant first-login spotlight tour */
.titi-tour-root {
    position: fixed;
    inset: 0;
    z-index: 10050;
    pointer-events: none;
}

.titi-tour-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.72);
    pointer-events: auto;
}

.titi-tour-backdrop-clear {
    background: transparent;
}

body.titi-tour-active {
    overflow: hidden;
}

.titi-tour-spotlight {
    position: fixed;
    border-radius: 0.75rem;
    box-shadow: 0 0 0 9999px rgba(15, 23, 42, 0.72);
    outline: 2px solid #f3a121;
    outline-offset: 0;
    pointer-events: none;
    z-index: 10051;
    transition: top 0.2s ease, left 0.2s ease, width 0.2s ease, height 0.2s ease;
}

.titi-tour-card {
    position: fixed;
    z-index: 10052;
    pointer-events: auto;
    background: #fff;
    color: #0f172a;
    border-radius: 0.9rem;
    padding: 1rem 1.1rem;
    box-shadow: 0 18px 50px rgba(15, 23, 42, 0.28);
    border: 1px solid rgba(15, 23, 42, 0.08);
}

.titi-tour-card-center {
    top: 50% !important;
    left: 50% !important;
    width: min(24rem, calc(100vw - 2rem)) !important;
    transform: translate(-50%, -50%);
}

.titi-tour-card-mobile {
    top: auto !important;
    left: 1rem !important;
    right: 1rem !important;
    bottom: 1.25rem !important;
    width: auto !important;
    transform: none !important;
    max-height: min(48vh, 22rem);
    overflow-y: auto;
}

.dark .titi-tour-card {
    background: rgb(17, 24, 39);
    color: rgb(248, 250, 252);
    border-color: rgba(255, 255, 255, 0.1);
}

.titi-tour-progress {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 0.4rem;
}

.dark .titi-tour-progress {
    color: #94a3b8;
}

.titi-tour-title {
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 0.35rem;
}

.titi-tour-body {
    font-size: 0.9rem;
    line-height: 1.45;
    margin: 0 0 1rem;
    color: #475569;
}

.dark .titi-tour-body {
    color: #cbd5e1;
}

.titi-tour-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.titi-tour-actions-right {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.titi-tour-btn {
    border: 0;
    border-radius: 0.55rem;
    padding: 0.45rem 0.85rem;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
}

.titi-tour-btn-ghost {
    background: transparent;
    color: #64748b;
}

.titi-tour-btn-ghost:hover {
    color: #0f172a;
    background: rgba(15, 23, 42, 0.06);
}

.dark .titi-tour-btn-ghost {
    color: #94a3b8;
}

.dark .titi-tour-btn-ghost:hover {
    color: #f8fafc;
    background: rgba(255, 255, 255, 0.08);
}

.titi-tour-btn-primary {
    background: #f3a121;
    color: #111827;
}

.titi-tour-btn-primary:hover {
    filter: brightness(0.96);
}

/* Order detail tables and delivery map */
.titi-order-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.titi-order-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.titi-order-table th,
.titi-order-table td {
    padding: 0.55rem 0.65rem;
    border-bottom: 1px solid color-mix(in srgb, var(--gray-300, #d1d5db) 80%, transparent);
    text-align: left;
    vertical-align: top;
}

.titi-order-table thead th {
    font-weight: 600;
    color: var(--gray-600, #4b5563);
    background: color-mix(in srgb, var(--gray-100, #f3f4f6) 90%, transparent);
}

.titi-order-table .titi-num {
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.titi-order-table .titi-item-name {
    font-weight: 600;
}

.titi-order-table .titi-item-meta,
.titi-hint,
.titi-empty {
    color: var(--gray-500, #6b7280);
    font-size: 0.8rem;
}

.titi-order-totals .titi-total-row td {
    font-weight: 700;
    border-top: 1px solid var(--gray-400, #9ca3af);
}

.titi-ss-example {
    max-width: 26rem;
}

.titi-ss-example-caption {
    margin: 0 0 0.5rem;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.4;
    color: var(--gray-700, #374151);
}

.dark .titi-ss-example-caption {
    color: var(--gray-300, #d1d5db);
}

.titi-ss-example .titi-order-table {
    display: table !important;
}

.titi-ss-example .titi-order-table thead {
    display: table-header-group !important;
}

.titi-ss-example .titi-order-table tbody {
    display: table-row-group !important;
}

.titi-ss-example .titi-order-table tr {
    display: table-row !important;
}

.titi-ss-example .titi-order-table th,
.titi-ss-example .titi-order-table td {
    display: table-cell !important;
}

/* Vendor Super Saver page */
.titi-ss-page {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.titi-ss-status,
.titi-ss-stat {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 0.5rem;
    background: #fff;
    box-sizing: border-box;
}

.dark .titi-ss-status,
.dark .titi-ss-stat {
    border-color: rgba(255, 255, 255, 0.1);
    background: rgb(17, 24, 39);
}

.titi-ss-status {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.15rem 1.5rem;
    padding: 1.15rem 1.25rem;
}

@media (min-width: 768px) {
    .titi-ss-status {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        align-items: start;
    }
}

.titi-ss-status-cell {
    min-width: 0;
}

.titi-ss-kicker,
.titi-ss-stat-label {
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.3;
    color: #0f172a;
}

.dark .titi-ss-kicker,
.dark .titi-ss-stat-label {
    color: #f8fafc;
}

.titi-ss-figure,
.titi-ss-stat-value {
    font-family: var(--titi-stats-font);
    font-size: 1.5rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.15;
    font-variant-numeric: tabular-nums;
    color: #0f172a;
}

.dark .titi-ss-figure,
.dark .titi-ss-stat-value {
    color: #f8fafc;
}

.titi-ss-figure {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-top: 0.45rem;
}

.titi-ss-mark {
    width: 0.55rem;
    height: 0.55rem;
    flex-shrink: 0;
    border-radius: 0.12rem;
    background: #94a3b8;
}

.titi-ss-figure.is-on .titi-ss-mark {
    background: #15803d;
}

.titi-ss-note,
.titi-ss-stat-month {
    margin: 0.3rem 0 0;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.35;
    color: #64748b;
}

.dark .titi-ss-note,
.dark .titi-ss-stat-month {
    color: #94a3b8;
}

.titi-ss-status-link {
    color: inherit;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.14em;
}

.titi-ss-status-link:hover {
    color: #0f172a;
}

.dark .titi-ss-status-link:hover {
    color: #f8fafc;
}

.titi-ss-status-link:focus-visible {
    outline: 2px solid #f3a121;
    outline-offset: 3px;
    border-radius: 0.2rem;
}

.titi-ss-stats {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.65rem;
}

@media (min-width: 640px) {
    .titi-ss-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .titi-ss-stats {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.titi-ss-stat {
    min-width: 0;
    padding: 1.15rem 1.25rem;
}

.titi-ss-stat-value {
    margin-top: 0.55rem;
}

.titi-order-totals .titi-discount td {
    color: #b45309;
}

.titi-hint {
    margin: 0.5rem 0 0;
}

.titi-delivery-map {
    margin-top: 0.5rem;
}

.titi-delivery-map-canvas {
    width: 100%;
    height: 260px;
    border-radius: 0.75rem;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--gray-300, #d1d5db) 90%, transparent);
    background: #eef2f7;
}

.titi-delivery-map-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    margin-top: 0.5rem;
    font-size: 0.8rem;
    color: var(--gray-600, #4b5563);
}

.titi-map-picker-wrap {
    position: relative;
    font-family: var(--titi-stats-font);
}

.titi-map-shell {
    border: 1px solid rgba(28, 25, 23, 0.12);
    border-radius: 0.9rem;
    background: #fff;
    overflow: hidden;
}

.dark .titi-map-shell {
    background: rgb(28, 25, 23);
    border-color: rgba(231, 229, 228, 0.12);
}

.titi-map-toolbar {
    padding: 0.9rem 1rem 0.85rem;
    border-bottom: 1px solid rgba(28, 25, 23, 0.08);
    background: #fafaf9;
}

.dark .titi-map-toolbar {
    background: rgba(41, 37, 36, 0.85);
    border-bottom-color: rgba(231, 229, 228, 0.1);
}

.titi-map-hint {
    margin: 0 0 0.7rem;
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.35;
    color: #57534e;
}

.dark .titi-map-hint {
    color: #a8a29e;
}

.titi-map-search-row {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.5rem;
}

.titi-map-search-field {
    position: relative;
    flex: 1 1 14rem;
    min-width: 0;
    display: block;
}

.titi-map-search-icon {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    width: 1rem;
    height: 1rem;
    transform: translateY(-50%);
    color: #78716c;
    pointer-events: none;
}

.titi-map-search-input {
    width: 100%;
    min-width: 0;
    border: 1px solid rgba(28, 25, 23, 0.14);
    border-radius: 0.65rem;
    padding: 0.62rem 0.8rem 0.62rem 2.2rem;
    font-family: inherit;
    font-size: 0.9rem;
    font-weight: 560;
    background: #fff;
    color: #1c1917;
    outline: none;
    transition: border-color 150ms ease-out, box-shadow 150ms ease-out;
}

.titi-map-search-input:focus {
    border-color: rgba(243, 161, 33, 0.85);
    box-shadow: 0 0 0 3px rgba(243, 161, 33, 0.22);
}

.dark .titi-map-search-input {
    background: rgb(28, 25, 23);
    border-color: rgba(231, 229, 228, 0.18);
    color: #fafaf9;
}

.titi-map-btn {
    border: 0;
    border-radius: 0.65rem;
    padding: 0.62rem 1rem;
    font-family: inherit;
    font-size: 0.84rem;
    font-weight: 700;
    background: #f3a121;
    color: #1c1917;
    cursor: pointer;
    transition: background 150ms ease-out, transform 150ms ease-out;
}

.titi-map-btn:hover {
    background: #e09314;
}

.titi-map-btn:focus-visible {
    outline: 2px solid #f3a121;
    outline-offset: 2px;
}

.titi-map-btn:disabled {
    opacity: 0.55;
    cursor: wait;
}

.titi-map-btn-ghost {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: #1c1917;
    color: #fff;
}

.titi-map-btn-ghost:hover {
    background: #0c0a09;
}

.titi-map-results {
    list-style: none;
    margin: 0.55rem 0 0;
    padding: 0;
    border: 1px solid rgba(28, 25, 23, 0.12);
    border-radius: 0.7rem;
    overflow: hidden;
    background: #fff;
    max-height: 14rem;
    overflow-y: auto;
}

.dark .titi-map-results {
    background: rgb(28, 25, 23);
    border-color: rgba(231, 229, 228, 0.16);
}

.titi-map-result-row {
    display: flex;
    flex-direction: column;
    border-bottom: 1px solid rgba(28, 25, 23, 0.08);
}

.titi-map-result-row:last-child {
    border-bottom: 0;
}

.titi-map-result {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    width: 100%;
    text-align: left;
    padding: 0.7rem 0.85rem 0.35rem;
    border: 0;
    background: transparent;
    cursor: pointer;
    color: inherit;
    font-family: inherit;
}

.titi-map-result-link {
    display: inline-block;
    padding: 0 0.85rem 0.7rem;
    font-size: 0.74rem;
    font-weight: 700;
    color: #a16207;
    text-decoration: none;
}

.titi-map-result-link:hover {
    color: #854d0e;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.titi-map-result:hover {
    background: rgba(243, 161, 33, 0.12);
}

.titi-map-result strong {
    font-size: 0.88rem;
    font-weight: 750;
    color: #1c1917;
}

.dark .titi-map-result strong {
    color: #fafaf9;
}

.titi-map-result span {
    font-size: 0.78rem;
    font-weight: 560;
    color: #78716c;
    line-height: 1.35;
}

.titi-map-search-hint {
    margin: 0.5rem 0 0;
    font-size: 0.78rem;
    font-weight: 650;
    color: #b45309;
}

.titi-map-canvas-wrap {
    position: relative;
    width: 100%;
}

.titi-map-picker {
    height: 22rem !important;
    min-height: 22rem !important;
    width: 100% !important;
    overflow: hidden;
    background: #e7e5e4;
    border: 0;
    border-radius: 0;
}

.titi-map-picker .gm-style,
.titi-map-picker .leaflet-container {
    height: 100% !important;
    width: 100% !important;
}

.titi-map-fab {
    position: absolute;
    right: 0.85rem;
    bottom: 0.85rem;
    z-index: 500;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.6rem;
    height: 2.6rem;
    border: 0;
    border-radius: 0.7rem;
    padding: 0;
    background: #1c1917;
    color: #fff;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(28, 25, 23, 0.28);
    transition: background 150ms ease-out;
}

.titi-map-fab:hover {
    background: #0c0a09;
}

.titi-map-fab:focus-visible {
    outline: 2px solid #f3a121;
    outline-offset: 2px;
}

.titi-map-fab:disabled {
    opacity: 0.55;
    cursor: wait;
}

.titi-map-status {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.55rem 1rem;
    padding: 0.7rem 1rem;
    border-top: 1px solid rgba(28, 25, 23, 0.08);
    background: #fff;
}

.dark .titi-map-status {
    background: rgb(28, 25, 23);
    border-top-color: rgba(231, 229, 228, 0.1);
}

.titi-map-status-pin {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    font-weight: 700;
    color: #78716c;
}

.titi-map-status-pin.is-set {
    color: #1c1917;
}

.dark .titi-map-status-pin.is-set {
    color: #fafaf9;
}

.titi-map-status-coords {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    font-size: 0.76rem;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
    color: #57534e;
}

.dark .titi-map-status-coords {
    color: #a8a29e;
}

.titi-map-pin {
    background: transparent;
    border: 0;
}

.titi-map-pin span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: #111827;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
}

.titi-notes-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.titi-notes-list .titi-note-meta {
    display: block;
    font-size: 0.75rem;
    color: var(--gray-500, #6b7280);
    margin-bottom: 0.15rem;
}

/* Membership tier admin stats */
.titi-membership-stats-grid {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 0.65rem;
}

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

@media (min-width: 1280px) {
    .titi-membership-stats-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.titi-membership-stat {
    font-family: var(--titi-stats-font);
    border: 1px solid color-mix(in srgb, var(--gray-300, #d1d5db) 85%, transparent);
    background: color-mix(in srgb, var(--gray-50, #f9fafb) 80%, transparent);
    border-radius: 0.75rem;
    padding: 0.7rem 0.85rem;
    min-width: 0;
}

.titi-membership-stat-label {
    font-family: var(--titi-stats-font);
    font-size: 0.72rem;
    font-weight: 650;
    color: var(--gray-500, #6b7280);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    line-height: 1.2;
}

.titi-membership-stat-value {
    font-family: var(--titi-stats-font);
    margin-top: 0.15rem;
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.15;
    color: var(--gray-900, #111827);
    font-variant-numeric: tabular-nums;
}

.titi-membership-stat-value-sm {
    font-size: 1.05rem;
}

.titi-membership-stat-hint {
    font-family: var(--titi-stats-font);
    margin-top: 0.2rem;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.25;
    color: var(--gray-500, #6b7280);
}

/* Login / simple auth: keep large brand mark (sidebar uses brandLogoHeight 3rem) */
.fi-simple-layout .fi-simple-header .fi-logo,
.fi-simple-header img.fi-logo {
    height: 6rem !important;
    width: auto !important;
    max-height: none !important;
}

.titi-device-icons {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.titi-device-icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    border: 1px solid rgba(26, 26, 26, 0.12);
    border-radius: 0.4rem;
    background: #fff;
    color: #1a1a1a;
    cursor: pointer;
}

.titi-device-icon:hover,
.titi-device-icon:focus-visible {
    border-color: #f3a121;
    outline: 2px solid rgba(243, 161, 33, 0.35);
    outline-offset: 1px;
}

.fi-ta-cell:has(.titi-device-icons),
.fi-ta-col:has(.titi-device-icons) {
    overflow: visible;
}

.titi-device-tip {
    position: absolute;
    left: 0;
    top: calc(100% + 0.35rem);
    z-index: 80;
    width: max-content;
    max-width: 18rem;
    padding: 0.5rem 0.6rem;
    border: 1px solid rgba(26, 26, 26, 0.12);
    border-radius: 0.4rem;
    background: #1a1a1a;
    color: #fff8e8;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.4;
    text-align: left;
    white-space: normal;
    box-shadow: 0 8px 20px rgba(26, 26, 26, 0.16);
}

.dark .titi-device-icon {
    background: rgb(17, 24, 39);
    border-color: rgba(255, 255, 255, 0.14);
    color: rgb(226, 232, 240);
}

.dark .titi-device-tip {
    background: rgb(15, 23, 42);
    border-color: rgba(255, 255, 255, 0.16);
    color: rgb(226, 232, 240);
}

.titi-muted {
    color: rgb(148, 163, 184);
}

.titi-share-actions {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/*
 * Utility classes below back the plain Tailwind class names used in a handful of
 * custom admin/staff/affiliate blade views (invited-list, inventory, share-and-earn,
 * affiliate-invite, manage-settings, manage-tier-config, support-inbox, the customer
 * delete-account modal). Filament's own compiled CSS only ships the "fi-*" classes it
 * uses internally, so raw utility classes in our own views render with no styling
 * unless we define them here. Keep additions scoped to what a view actually uses.
 */
.flex { display: flex; }
.grid { display: grid; }
.flex-wrap { flex-wrap: wrap; }
.overflow-hidden { overflow: hidden; }
.w-full { width: 100%; }

.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

@media (min-width: 640px) {
    .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .sm\:col-span-2 { grid-column: span 2 / span 2; }
}

@media (min-width: 1024px) {
    .lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lg\:grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

.gap-2 { gap: 0.5rem; }
.gap-4 { gap: 1rem; }
.gap-6 { gap: 1.5rem; }

.p-4 { padding: 1rem; }
.px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.pl-5 { padding-left: 1.25rem; }
.mt-1 { margin-top: 0.25rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-6 { margin-bottom: 1.5rem; }

.space-y-1 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.25rem; }
.space-y-3 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.75rem; }
.space-y-4 > :not([hidden]) ~ :not([hidden]) { margin-top: 1rem; }
.space-y-6 > :not([hidden]) ~ :not([hidden]) { margin-top: 1.5rem; }

.text-xs { font-size: 0.75rem; line-height: 1rem; }
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.text-2xl { font-size: 1.5rem; line-height: 2rem; }
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.text-left { text-align: left; }
.uppercase { text-transform: uppercase; }
.tracking-wide { letter-spacing: 0.025em; }
.underline { text-decoration-line: underline; }
.break-all { word-break: break-all; }
.list-disc { list-style-type: disc; }

.border { border-width: 1px; border-style: solid; border-color: rgb(226, 232, 240); }
.border-t { border-top-width: 1px; border-top-style: solid; border-color: rgb(226, 232, 240); }
.rounded-lg { border-radius: 0.5rem; }
.rounded-xl { border-radius: 0.75rem; }
.shadow-sm { box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); }
.ring-1 { box-shadow: 0 0 0 1px rgba(2, 6, 23, 0.05); }
.ring-gray-950\/5 { box-shadow: 0 0 0 1px rgba(2, 6, 23, 0.05); }

.bg-white { background-color: #fff; }
.bg-gray-50 { background-color: rgb(248, 250, 252); }
.bg-danger-50 { background-color: oklch(0.971 0.013 17.38); }
.text-gray-500 { color: rgb(100, 116, 139); }
.text-gray-600 { color: rgb(71, 85, 105); }
.text-gray-950 { color: rgb(2, 6, 23); }
.text-danger-600 { color: oklch(0.577 0.245 27.325); }
.text-danger-700 { color: oklch(0.505 0.213 27.518); }
.border-gray-100 { border-color: rgb(241, 245, 249); }
.border-gray-200 { border-color: rgb(226, 232, 240); }
.border-danger-300 { border-color: oklch(0.808 0.114 19.571); }

.dark .dark\:bg-gray-800 { background-color: rgb(30, 41, 59); }
.dark .dark\:bg-gray-900 { background-color: rgb(15, 23, 42); }
.dark .dark\:bg-white\/5 { background-color: rgba(255, 255, 255, 0.05); }
.dark .dark\:bg-danger-950\/40 { background-color: color-mix(in oklab, oklch(0.258 0.092 26.042) 40%, transparent); }
.dark .dark\:border-gray-700 { border-color: rgb(51, 65, 85); }
.dark .dark\:border-white\/10 { border-color: rgba(255, 255, 255, 0.1); }
.dark .dark\:border-danger-600 { border-color: oklch(0.577 0.245 27.325); }
.dark .dark\:ring-white\/10 { box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.1); }
.dark .dark\:text-white { color: #fff; }
.dark .dark\:text-gray-300 { color: rgb(203, 213, 225); }
.dark .dark\:text-gray-400 { color: rgb(148, 163, 184); }
.dark .dark\:text-danger-300 { color: oklch(0.808 0.114 19.571); }
.dark .dark\:text-danger-400 { color: oklch(0.704 0.191 22.216); }

/*
 * More utility classes, added for the vendor (merchant) panel's custom blade views
 * (merchant-terms, super-saver-terms, invoicing-settings, support-chat, share-and-earn,
 * super-saver, sms-link). Same reasoning as the block above: Filament's compiled CSS
 * doesn't ship plain Tailwind utilities, so these back the classes those views use.
 */
.block { display: block; }
.flex-col { flex-direction: column; }
.items-center { align-items: center; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }

@media (min-width: 1024px) {
    .lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.gap-3 { gap: 0.75rem; }
.p-2 { padding: 0.5rem; }
.p-3 { padding: 0.75rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.mt-6 { margin-top: 1.5rem; }
.opacity-90 { opacity: 0.9; }
.ms-2 { margin-inline-start: 0.5rem; }
.h-44 { height: 11rem; }
.w-44 { width: 11rem; }

.font-bold { font-weight: 700; }
.tracking-widest { letter-spacing: 0.1em; }
.rounded { border-radius: 0.25rem; }
.transition {
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.text-gray-400 { color: rgb(148, 163, 184); }
.dark .dark\:text-gray-500 { color: rgb(100, 116, 139); }
.text-primary-600 { color: oklch(0.772 0.158 71.066); }
.dark .dark\:text-primary-400 { color: oklch(0.84 0.14 71.1); }
.hover\:border-primary-400:hover { border-color: oklch(0.84 0.14 71.1); }
.hover\:bg-primary-50\/40:hover { background-color: color-mix(in oklab, oklch(0.985 0.028 71.1) 40%, transparent); }
.dark .dark\:hover\:border-primary-500:hover { border-color: oklch(0.772 0.158 71.066); }
.dark .dark\:hover\:bg-primary-950\/20:hover { background-color: color-mix(in oklab, oklch(0.34 0.083 71.1) 20%, transparent); }
.decoration-primary-600\/40 { text-decoration-color: color-mix(in oklab, oklch(0.772 0.158 71.066) 40%, transparent); }
.hover\:decoration-primary-600:hover { text-decoration-color: oklch(0.772 0.158 71.066); }

/* Basic prose styling for the Super Saver terms list (no Tailwind Typography plugin available). */
.prose { color: rgb(51, 65, 85); line-height: 1.65; }
.prose strong { font-weight: 700; color: inherit; }
.prose-sm { font-size: 0.875rem; line-height: 1.65; }
.max-w-none { max-width: none; }
.dark .dark\:prose-invert { color: rgb(203, 213, 225); }
.dark .dark\:prose-invert strong { color: rgb(248, 250, 252); }

.bg-amber-50 { background-color: oklch(0.987 0.022 95.277); }
.border-amber-300 { border-color: oklch(0.879 0.169 91.605); }
.text-amber-900 { color: oklch(0.414 0.112 45.904); }
.dark .dark\:bg-amber-950 { background-color: oklch(0.279 0.077 45.635); }
.dark .dark\:border-amber-700 { border-color: oklch(0.555 0.163 48.998); }
.dark .dark\:text-amber-100 { color: oklch(0.962 0.059 95.617); }
.text-amber-950 { color: oklch(0.279 0.077 45.635); }
.dark .dark\:bg-amber-950\/40 { background-color: color-mix(in oklab, oklch(0.279 0.077 45.635) 40%, transparent); }

