body { 
    font-family: 'Inter', sans-serif; 
}

/* Tab Button Styles */
.tab-btn {
    white-space: nowrap;
    padding-top: 1rem;
    padding-bottom: 1rem;
    padding-left: 0.25rem;
    padding-right: 0.25rem;
    border-bottom-width: 2px;
    border-color: transparent;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    color: #6B7280; /* text-gray-500 */
}
.tab-btn:hover {
    border-color: #D1D5DB; /* gray-300 */
    color: #374151; /* gray-700 */
}
.active-tab {
    border-color: #3B82F6; /* blue-500 */
    color: #2563EB; /* blue-600 */
}

/* Common Result Area Styles */
.result-area {
    background-color: #F9FAFB; /* bg-gray-50 */
    margin-top: 1rem; /* mt-4 */
    padding: 1rem; /* p-4 */
    border-radius: 0.5rem; /* rounded-lg */
    box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.05); /* shadow-inner */
    min-height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.result-text {
    color: #6B7280; /* text-gray-500 */
    text-align: center;
    width: 100%;
}

/* Common Tool Button Styles */
.tool-btn {
    width: 100%;
    color: white;
    font-weight: 600; /* font-semibold */
    padding-top: 0.5rem; /* py-2 */
    padding-bottom: 0.5rem; /* py-2 */
    padding-left: 1rem; /* px-4 */
    padding-right: 1rem; /* px-4 */
    border-radius: 0.375rem; /* rounded-md */
}

/* Disabled Form Styles */
select:disabled, input:disabled {
    background-color: #F3F4F6; /* bg-gray-100 */
    cursor: not-allowed;
    opacity: 0.7;
}

/* Real-Time Progress Bar Styles */
.progress-bar-text {
    text-shadow: 0 1px 2px rgba(0,0,0,0.25);
}

/* Full Week Schedule Highlighter */
.current-lec-highlight {
    background-color: #FEF9C3; /* yellow-100 */
    border: 1px solid #FDE047; /* yellow-300 */
}

/* NEW: Animation Styles */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(15px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-in {
    animation: fadeInUp 0.4s ease-out forwards;
}

/* PWA Toast Animation */
#pwa-toast {
    transform: translate(-50%, 200%);
    transition: transform 0.5s ease-in-out;
}
#pwa-toast.show {
    transform: translate(-50%, 0);
}

.dark #pwa-toast {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-primary);
}
.dark #pwa-toast p, .dark #pwa-toast strong {
    color: var(--text-label);
}
/* Responsive fix for narrow screens to prevent tab overflow */
@media (max-width: 380px) {
  .tab-btn {
    font-size: 0.8rem; /* Makes text a little smaller */
    padding-left: 0.4rem;  /* Reduces horizontal padding */
    padding-right: 0.4rem;
  }
}
