@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap');

/* Custom base styles */
body {
    background-color: #f9f9ff;
    color: #141b2b;
    font-family: 'Inter', sans-serif;
    -webkit-font-smoothing: antialiased;
    margin: 0;
    padding: 0;
}

/* Custom component styles */
/* Card styles from Stitch design */
.card {
    background-color: #ffffff;
    border-radius: 0.75rem;
    border: 1px solid #c2c6d6;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}

.card-elevated {
    background-color: #ffffff;
    border-radius: 0.75rem;
    border: 1px solid #e5e7eb;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

/* Button styles */
.btn-primary {
    background-color: #0058be;
    color: #ffffff;
    padding: 0.5rem 1rem;
    border-radius: 0.5rem;
    font-weight: 500;
    transition: all 0.2s;
    border: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.btn-primary:hover {
    background-color: #2170e4;
}

.btn-primary:focus {
    outline: none;
    box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #0058be;
}

.btn-secondary {
    background-color: #ffffff;
    color: #141b2b;
    border: 1px solid #c2c6d6;
    padding: 0.5rem 1rem;
    border-radius: 0.5rem;
    font-weight: 500;
    transition: all 0.2s;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.btn-secondary:hover {
    background-color: #e9edff;
}

.btn-ghost {
    background-color: transparent;
    color: #424754;
    padding: 0.5rem 1rem;
    border-radius: 0.5rem;
    font-weight: 500;
    transition: all 0.2s;
    border: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.btn-ghost:hover {
    background-color: #e9edff;
}

/* Input styles */
.input {
    height: 2.5rem;
    background-color: #ffffff;
    border: 1px solid #d1d5db;
    border-radius: 0.5rem;
    padding: 0 0.75rem;
    color: #141b2b;
    transition: all 0.2s;
    font-size: 0.875rem;
}

.input::placeholder {
    color: #9ca3af;
}

.input:focus {
    outline: none;
    border-color: #0058be;
    box-shadow: 0 0 0 3px rgba(0, 90, 194, 0.1);
}

/* Table styles */
.table-container {
    background-color: #ffffff;
    border-radius: 0.75rem;
    border: 1px solid #e5e7eb;
    overflow: hidden;
}

.table {
    width: 100%;
    border-collapse: collapse;
    text-align: left;
}

.table th {
    background-color: #f1f3ff;
    color: #424754;
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.75rem 1rem;
}

.table td {
    padding: 0.875rem 1rem;
    border-bottom: 1px solid #f1f3ff;
    font-size: 0.875rem;
}

.table tbody tr:hover {
    background-color: #f1f3ff;
}

/* Metric card styles */
.metric-card {
    background-color: #ffffff;
    border-radius: 0.75rem;
    padding: 1.5rem;
    border: 1px solid #c2c6d6;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}

/* Sidebar styles */
.sidebar {
    background-color: #ffffff;
    width: 260px;
    height: 100vh;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 50;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: 0 1px 8px rgba(0,0,0,0.04);
}

/* Navigation active state */
.nav-item {
    padding: 0.625rem 1rem;
    border-radius: 0.5rem;
    color: #424754;
    font-weight: 500;
    transition: all 0.2s;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.nav-item:hover {
    background-color: #e1e8fd;
    color: #141b2b;
}

.nav-item.active {
    background-color: #d8e2ff;
    color: #004395;
}

/* Status badges */
.badge-success {
    background-color: #6cf8bb;
    color: #002113;
    padding: 0.25rem 0.625rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.badge-warning {
    background-color: #ffdad3;
    color: #3e0500;
    padding: 0.25rem 0.625rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.badge-info {
    background-color: #d8e2ff;
    color: #004395;
    padding: 0.25rem 0.625rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.badge-error {
    background-color: #ffdad6;
    color: #93000a;
    padding: 0.25rem 0.625rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

/* Channel badges */
.channel-shopee {
    background-color: #EE4D2D;
    color: white;
    padding: 0.125rem 0.5rem;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
}

.channel-tiktok {
    background-color: #00F2EA;
    color: #141b2b;
    padding: 0.125rem 0.5rem;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
}

/* Profit/Loss colors */
.text-profit {
    color: #10B981;
}

.text-loss {
    color: #EF4444;
}

.bg-profit {
    background-color: #10B981;
}

.bg-loss {
    background-color: #EF4444;
}

/* Material Symbols */
.material-symbols-outlined {
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* Utility classes */
.flex { display: flex; }
.flex-col { flex-direction: column; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.justify-end { justify-content: flex-end; }
.gap-1 { gap: 0.25rem; }
.gap-2 { gap: 0.5rem; }
.gap-3 { gap: 0.75rem; }
.gap-4 { gap: 1rem; }
.gap-6 { gap: 1.5rem; }
.p-4 { padding: 1rem; }
.p-6 { padding: 1.5rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-6 { margin-bottom: 1.5rem; }
.mt-2 { margin-top: 0.5rem; }
.mt-4 { margin-top: 1rem; }
.text-sm { font-size: 0.75rem; }
.text-lg { font-size: 1.125rem; }
.text-xl { font-size: 1.25rem; }
.text-2xl { font-size: 1.5rem; }
.text-3xl { font-size: 1.875rem; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }
.text-gray-500 { color: #6b7280; }
.text-gray-600 { color: #4b5563; }
.text-gray-700 { color: #374151; }
.text-gray-900 { color: #111827; }
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.w-full { width: 100%; }
.h-full { height: 100%; }
.min-h-screen { min-height: 100vh; }
.overflow-hidden { overflow: hidden; }
.overflow-x-auto { overflow-x: auto; }
.rounded-lg { border-radius: 0.5rem; }
.rounded-xl { border-radius: 0.75rem; }
.rounded-full { border-radius: 9999px; }
.shadow-sm { box-shadow: 0 1px 2px rgba(0,0,0,0.05); }
.shadow-md { box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
.border { border-width: 1px; }
.border-gray-200 { border-color: #e5e7eb; }
.border-gray-300 { border-color: #d1d5db; }
.bg-white { background-color: #ffffff; }
.bg-gray-50 { background-color: #f9fafb; }
.bg-gray-100 { background-color: #f3f4f6; }
.bg-primary { background-color: #0058be; }
.bg-secondary { background-color: #006c49; }
.text-white { color: #ffffff; }
.text-primary { color: #0058be; }
.text-secondary { color: #006c49; }
.hover\:bg-gray-100:hover { background-color: #f3f4f6; }
.hover\:bg-gray-50:hover { background-color: #f9fafb; }
.hover\:text-gray-900:hover { color: #111827; }
.transition { transition: all 0.2s; }
.cursor-pointer { cursor: pointer; }
.select-none { user-select: none; }
